arkos 1.2.2-test → 1.2.3-beta

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 (107) hide show
  1. package/cli.js +0 -9
  2. package/dist/cjs/app.js +1 -1
  3. package/dist/cjs/app.js.map +1 -1
  4. package/dist/cjs/exports/utils/index.js +26 -0
  5. package/dist/cjs/exports/utils/index.js.map +1 -1
  6. package/dist/cjs/modules/base/base.controller.js +14 -16
  7. package/dist/cjs/modules/base/base.controller.js.map +1 -1
  8. package/dist/cjs/modules/base/base.router.js.map +1 -1
  9. package/dist/cjs/modules/base/utils/helpers/base.router.helpers.js +32 -18
  10. package/dist/cjs/modules/base/utils/helpers/base.router.helpers.js.map +1 -1
  11. package/dist/cjs/modules/error-handler/error-handler.controller.js +1 -0
  12. package/dist/cjs/modules/error-handler/error-handler.controller.js.map +1 -1
  13. package/dist/cjs/modules/swagger/swagger.router.js +117 -0
  14. package/dist/cjs/modules/swagger/swagger.router.js.map +1 -1
  15. package/dist/cjs/modules/swagger/utils/helpers/get-authentication-json-schema-paths.js +250 -0
  16. package/dist/cjs/modules/swagger/utils/helpers/get-authentication-json-schema-paths.js.map +1 -0
  17. package/dist/cjs/modules/swagger/utils/helpers/get-system-json-schema-paths.js +66 -0
  18. package/dist/cjs/modules/swagger/utils/helpers/get-system-json-schema-paths.js.map +1 -0
  19. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-class-validator-json-schemas.js +41 -0
  20. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-class-validator-json-schemas.js.map +1 -0
  21. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-prisma-json-schemas.js +22 -0
  22. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-prisma-json-schemas.js.map +1 -0
  23. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schema.js +29 -0
  24. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schema.js.map +1 -0
  25. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes.js +439 -0
  26. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes.js.map +1 -0
  27. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-parent-routes.js +162 -0
  28. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-parent-routes.js.map +1 -0
  29. package/dist/cjs/modules/swagger/utils/helpers/swagger.router.helpers.js +90 -0
  30. package/dist/cjs/modules/swagger/utils/helpers/swagger.router.helpers.js.map +1 -0
  31. package/dist/cjs/server.js +2 -2
  32. package/dist/cjs/server.js.map +1 -1
  33. package/dist/cjs/types/arkos-config.js.map +1 -1
  34. package/dist/cjs/utils/cli/dev.js +4 -3
  35. package/dist/cjs/utils/cli/dev.js.map +1 -1
  36. package/dist/cjs/utils/cli/index.js.map +1 -1
  37. package/dist/cjs/utils/cli/start.js +3 -3
  38. package/dist/cjs/utils/cli/start.js.map +1 -1
  39. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-auth-configs-template.js +1 -1
  40. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-auth-configs-template.js.map +1 -1
  41. package/dist/cjs/utils/features/api.features.js +34 -22
  42. package/dist/cjs/utils/features/api.features.js.map +1 -1
  43. package/dist/cjs/utils/helpers/models.helpers.js +14 -16
  44. package/dist/cjs/utils/helpers/models.helpers.js.map +1 -1
  45. package/dist/cjs/utils/sheu.js +143 -0
  46. package/dist/cjs/utils/sheu.js.map +1 -0
  47. package/dist/es2020/app.js +1 -1
  48. package/dist/es2020/app.js.map +1 -1
  49. package/dist/es2020/exports/utils/index.js +2 -0
  50. package/dist/es2020/exports/utils/index.js.map +1 -1
  51. package/dist/es2020/modules/base/base.controller.js +14 -16
  52. package/dist/es2020/modules/base/base.controller.js.map +1 -1
  53. package/dist/es2020/modules/base/base.router.js.map +1 -1
  54. package/dist/es2020/modules/base/utils/helpers/base.router.helpers.js +30 -18
  55. package/dist/es2020/modules/base/utils/helpers/base.router.helpers.js.map +1 -1
  56. package/dist/es2020/modules/error-handler/error-handler.controller.js +1 -0
  57. package/dist/es2020/modules/error-handler/error-handler.controller.js.map +1 -1
  58. package/dist/es2020/modules/swagger/swagger.router.js +112 -1
  59. package/dist/es2020/modules/swagger/swagger.router.js.map +1 -1
  60. package/dist/es2020/modules/swagger/utils/helpers/get-authentication-json-schema-paths.js +247 -0
  61. package/dist/es2020/modules/swagger/utils/helpers/get-authentication-json-schema-paths.js.map +1 -0
  62. package/dist/es2020/modules/swagger/utils/helpers/get-system-json-schema-paths.js +63 -0
  63. package/dist/es2020/modules/swagger/utils/helpers/get-system-json-schema-paths.js.map +1 -0
  64. package/dist/es2020/modules/swagger/utils/helpers/json-schema-generators/generate-class-validator-json-schemas.js +38 -0
  65. package/dist/es2020/modules/swagger/utils/helpers/json-schema-generators/generate-class-validator-json-schemas.js.map +1 -0
  66. package/dist/es2020/modules/swagger/utils/helpers/json-schema-generators/generate-prisma-json-schemas.js +19 -0
  67. package/dist/es2020/modules/swagger/utils/helpers/json-schema-generators/generate-prisma-json-schemas.js.map +1 -0
  68. package/dist/es2020/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schema.js +23 -0
  69. package/dist/es2020/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schema.js.map +1 -0
  70. package/dist/es2020/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes.js +436 -0
  71. package/dist/es2020/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes.js.map +1 -0
  72. package/dist/es2020/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-parent-routes.js +159 -0
  73. package/dist/es2020/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-parent-routes.js.map +1 -0
  74. package/dist/es2020/modules/swagger/utils/helpers/swagger.router.helpers.js +83 -0
  75. package/dist/es2020/modules/swagger/utils/helpers/swagger.router.helpers.js.map +1 -0
  76. package/dist/es2020/server.js +2 -2
  77. package/dist/es2020/server.js.map +1 -1
  78. package/dist/es2020/types/arkos-config.js.map +1 -1
  79. package/dist/es2020/utils/cli/dev.js +4 -3
  80. package/dist/es2020/utils/cli/dev.js.map +1 -1
  81. package/dist/es2020/utils/cli/index.js.map +1 -1
  82. package/dist/es2020/utils/cli/start.js +3 -3
  83. package/dist/es2020/utils/cli/start.js.map +1 -1
  84. package/dist/es2020/utils/cli/utils/template-generator/templates/generate-auth-configs-template.js +1 -1
  85. package/dist/es2020/utils/cli/utils/template-generator/templates/generate-auth-configs-template.js.map +1 -1
  86. package/dist/es2020/utils/features/api.features.js +33 -22
  87. package/dist/es2020/utils/features/api.features.js.map +1 -1
  88. package/dist/es2020/utils/helpers/models.helpers.js +13 -15
  89. package/dist/es2020/utils/helpers/models.helpers.js.map +1 -1
  90. package/dist/es2020/utils/sheu.js +141 -0
  91. package/dist/es2020/utils/sheu.js.map +1 -0
  92. package/dist/types/exports/utils/index.d.ts +2 -0
  93. package/dist/types/modules/base/utils/helpers/base.router.helpers.d.ts +4 -1
  94. package/dist/types/modules/swagger/swagger.router.d.ts +3 -0
  95. package/dist/types/modules/swagger/utils/helpers/get-authentication-json-schema-paths.d.ts +2 -0
  96. package/dist/types/modules/swagger/utils/helpers/get-system-json-schema-paths.d.ts +2 -0
  97. package/dist/types/modules/swagger/utils/helpers/json-schema-generators/generate-class-validator-json-schemas.d.ts +1 -0
  98. package/dist/types/modules/swagger/utils/helpers/json-schema-generators/generate-prisma-json-schemas.d.ts +1 -0
  99. package/dist/types/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schema.d.ts +1 -0
  100. package/dist/types/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes.d.ts +2 -0
  101. package/dist/types/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-parent-routes.d.ts +2 -0
  102. package/dist/types/modules/swagger/utils/helpers/swagger.router.helpers.d.ts +7 -0
  103. package/dist/types/types/arkos-config.d.ts +45 -0
  104. package/dist/types/utils/features/api.features.d.ts +5 -4
  105. package/dist/types/utils/helpers/models.helpers.d.ts +10 -0
  106. package/dist/types/utils/sheu.d.ts +25 -0
  107. package/package.json +12 -4
@@ -0,0 +1,141 @@
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`;
57
+ }
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) {
106
+ const label = `[\x1b[36mINFO\x1b[0m]`;
107
+ const content = message ? `${label} ${message}` : label;
108
+ console.info(content);
109
+ return content;
110
+ }
111
+ error(message) {
112
+ const label = `[\x1b[31mERROR\x1b[0m]`;
113
+ const content = message ? `${label} ${message}` : label;
114
+ console.info(content);
115
+ return content;
116
+ }
117
+ ready(message) {
118
+ const label = `[\x1b[32mREADY\x1b[0m]`;
119
+ const content = message ? `${label} ${message}` : label;
120
+ console.info(content);
121
+ return content;
122
+ }
123
+ done(message) {
124
+ const label = `[\x1b[32mDONE\x1b[0m]`;
125
+ const content = message ? `${label} ${message}` : label;
126
+ console.info(content);
127
+ return content;
128
+ }
129
+ warn(message) {
130
+ const label = `[\x1b[33mWARN\x1b[0m]`;
131
+ console.info(message ? `${label} ${message}` : label);
132
+ }
133
+ }
134
+ 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
+ export default sheu;
141
+ //# sourceMappingURL=sheu.js.map
@@ -0,0 +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,2 +1,4 @@
1
1
  export * from "../../utils/helpers/change-case.helpers";
2
2
  export { MsDuration } from "../../modules/auth/utils/helpers/auth.controller.helpers";
3
+ import APIFeatures, { apiFeatures } from "../../utils/features/api.features";
4
+ export { APIFeatures, apiFeatures };
@@ -1,3 +1,6 @@
1
1
  import { Router } from "express";
2
- import { ArkosConfig } from "../../../../exports";
2
+ import { ArkosConfig, RouterConfig } from "../../../../exports";
3
+ import { RouterEndpoint } from "../../../../types/router-config";
3
4
  export declare function setupRouters(models: string[], router: Router, arkosConfigs: ArkosConfig): Promise<void>[];
5
+ export declare function isEndpointDisabled(routerConfig: RouterConfig, endpoint: RouterEndpoint): boolean;
6
+ export declare function isParentEndpointAllowed(routerConfig: any, endpoint: string): boolean;
@@ -0,0 +1,3 @@
1
+ import { Router } from "express";
2
+ import { ArkosConfig } from "../../types/arkos-config";
3
+ export declare function getSwaggerRouter(arkosConfig: ArkosConfig): Promise<Router>;
@@ -0,0 +1,2 @@
1
+ import { OpenAPIV3 } from "openapi-types";
2
+ export declare function getAuthenticationJsonSchemaPaths(): OpenAPIV3.PathsObject<{}, {}>;
@@ -0,0 +1,2 @@
1
+ import { OpenAPIV3 } from "openapi-types";
2
+ export declare function getSystemJsonSchemaPaths(): OpenAPIV3.PathsObject<{}, {}>;
@@ -0,0 +1 @@
1
+ export declare function generateClassValidatorJsonSchemas(): Promise<Record<string, any>>;
@@ -0,0 +1 @@
1
+ export declare function generatePrismaJsonSchemas(): Promise<void>;
@@ -0,0 +1 @@
1
+ export declare function generateZodJsonSchemas(): Promise<void>;
@@ -0,0 +1,2 @@
1
+ import { OpenAPIV3 } from "openapi-types";
2
+ export declare function generatePrismaModelMainRoutesPaths(paths: OpenAPIV3.PathsObject, routeName: string, pascalModelName: string, humanReadableName: string, humanReadableNamePlural: string, routerConfig: any, mode: string): Promise<void>;
@@ -0,0 +1,2 @@
1
+ import { OpenAPIV3 } from "openapi-types";
2
+ export declare function generatePrismaModelParentRoutePaths(paths: OpenAPIV3.PathsObject, routeName: string, pascalModelName: string, humanReadableName: string, humanReadableNamePlural: string, routerConfig: any, mode: string): Promise<void>;
@@ -0,0 +1,7 @@
1
+ import { ArkosConfig } from "../../../../exports";
2
+ import { OpenAPIV3 } from "openapi-types";
3
+ export declare function getOpenAPIJsonSchemasByConfigMode(swaggerConfig: ArkosConfig["swagger"]): Promise<void | Record<string, any>>;
4
+ export declare function getCorrectJsonSchemaName(type: string, modelName: string, suffix: "Dto" | "Schema"): string;
5
+ export declare function kebabToHuman(kebabStr: string): string;
6
+ export declare function getSchemaRef(schemaName: string, mode: string): string;
7
+ export declare function generatePathsForModels(swaggerConfig: ArkosConfig["swagger"]): Promise<OpenAPIV3.PathsObject>;
@@ -7,6 +7,7 @@ import compression from "compression";
7
7
  import { Options as QueryParserOptions } from "../utils/helpers/query-parser.helpers";
8
8
  import { ValidatorOptions } from "class-validator";
9
9
  import { MsDuration } from "../modules/auth/utils/helpers/auth.controller.helpers";
10
+ import { OpenAPIV3 } from "openapi-types";
10
11
  export type ArkosConfig = {
11
12
  request?: {
12
13
  parameters?: {
@@ -119,4 +120,48 @@ export type ArkosConfig = {
119
120
  };
120
121
  name?: string;
121
122
  };
123
+ swagger?: {
124
+ enableAfterBuild?: boolean;
125
+ endpoint?: string;
126
+ mode: "prisma" | "class-validator" | "zod";
127
+ options?: {
128
+ definition?: {
129
+ openapi?: string;
130
+ info?: {
131
+ title?: string;
132
+ version?: string;
133
+ description?: string;
134
+ };
135
+ servers?: {
136
+ url: string;
137
+ description?: string;
138
+ }[];
139
+ paths?: OpenAPIV3.PathsObject;
140
+ termsOfService?: string;
141
+ contact?: {
142
+ name?: string;
143
+ url?: string;
144
+ email?: string;
145
+ };
146
+ license?: {
147
+ name: string;
148
+ url?: string;
149
+ };
150
+ tags?: {
151
+ name: string;
152
+ description?: string;
153
+ }[];
154
+ components?: {
155
+ securitySchemes?: Record<string, any>;
156
+ schemas?: Record<string, any>;
157
+ };
158
+ security?: Array<Record<string, string[]>>;
159
+ };
160
+ apis?: string[];
161
+ swaggerUiOptions?: Record<string, any>;
162
+ deepLinking?: boolean;
163
+ tryItOutEnabled?: boolean;
164
+ persistAuthorization?: boolean;
165
+ };
166
+ };
122
167
  };
@@ -2,18 +2,19 @@ import { Request } from "express";
2
2
  import { ArkosRequest } from "../../types";
3
3
  type ModelName = string;
4
4
  export default class APIFeatures {
5
- req: ArkosRequest;
5
+ req?: ArkosRequest;
6
6
  searchParams: any;
7
7
  searchParamsWithModifiers: any;
8
8
  filters: any;
9
- modelName: ModelName;
9
+ modelName?: ModelName;
10
10
  excludedFields: string[];
11
- constructor(req: Request, modelName: ModelName, relationFields?: Record<string, boolean>);
11
+ constructor(req?: Request, modelName?: ModelName);
12
+ setup(req: Request, modelName?: ModelName): this;
12
13
  filter(): this;
13
14
  search(): void;
14
15
  sort(): this;
15
16
  limitFields(): this;
16
17
  paginate(): this;
17
- exec(): Promise<any>;
18
18
  }
19
+ export declare const apiFeatures: APIFeatures;
19
20
  export {};
@@ -22,6 +22,8 @@ export declare function getFileModelModulesFileStructure(modelName: string): {
22
22
  createMany?: undefined;
23
23
  update?: undefined;
24
24
  updateMany?: undefined;
25
+ findOne?: undefined;
26
+ findMany?: undefined;
25
27
  query?: undefined;
26
28
  } | {
27
29
  model: string;
@@ -29,6 +31,8 @@ export declare function getFileModelModulesFileStructure(modelName: string): {
29
31
  createMany: string;
30
32
  update: string;
31
33
  updateMany: string;
34
+ findOne: string;
35
+ findMany: string;
32
36
  query: string;
33
37
  login?: undefined;
34
38
  signup?: undefined;
@@ -45,6 +49,8 @@ export declare function getFileModelModulesFileStructure(modelName: string): {
45
49
  createMany?: undefined;
46
50
  update?: undefined;
47
51
  updateMany?: undefined;
52
+ findOne?: undefined;
53
+ findMany?: undefined;
48
54
  query?: undefined;
49
55
  } | {
50
56
  model: string;
@@ -52,6 +58,8 @@ export declare function getFileModelModulesFileStructure(modelName: string): {
52
58
  createMany: string;
53
59
  update: string;
54
60
  updateMany: string;
61
+ findOne: string;
62
+ findMany: string;
55
63
  query: string;
56
64
  login?: undefined;
57
65
  signup?: undefined;
@@ -87,9 +95,11 @@ export type RelationFields = {
87
95
  export declare const prismaModelRelationFields: Record<string, RelationFields>;
88
96
  export declare function getAllPrismaFiles(dirPath: string, fileList?: string[]): string[];
89
97
  export declare const models: string[];
98
+ export declare let prismaSchemasContent: string;
90
99
  export declare const prismaModelsUniqueFields: Record<string, ModelFieldDefition[]>;
91
100
  export declare function initializePrismaModels(): void;
92
101
  export declare function getPrismaModelRelations(modelName: string): RelationFields | undefined;
93
102
  declare function getModels(): string[];
103
+ export declare function getPrismaSchemasContent(): string;
94
104
  declare function getModelUniqueFields(modelName: string): ModelFieldDefition[];
95
105
  export { getModels, getModelUniqueFields };
@@ -0,0 +1,25 @@
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;
23
+ }
24
+ declare const sheu: Sheu;
25
+ export default sheu;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "arkos",
3
- "version": "1.2.2-test",
3
+ "version": "1.2.3-beta",
4
4
  "description": "The Express & Prisma Framework For RESTful API",
5
5
  "main": "dist/cjs/exports/index.js",
6
6
  "module": "dist/es2020/exports/index.js",
@@ -81,7 +81,7 @@
81
81
  "build:types": "tsc -p tsconfig.types.json",
82
82
  "build:cjs": "tsc -p tsconfig.cjs.json",
83
83
  "postbuilda": "echo {\\\"type\":\"commonjs\\\"} > dist/cjs/package.json",
84
- "build": "pnpm test && npx rimraf dist && pnpm run build:cjs && pnpm run build:es2020 && pnpm run build:types && pnpm run minify",
84
+ "build": "npx rimraf dist && pnpm run build:cjs && pnpm run build:es2020 && pnpm run build:types && pnpm run minify",
85
85
  "minify": "esbuild dist/**/*.js --minify --outdir=dist --allow-overwrite --log-limit=0 --define:process.env.NODE_ENV=process.env.NODE_ENV",
86
86
  "clean": "rm -r dist",
87
87
  "dev": "ts-node --watch",
@@ -141,11 +141,14 @@
141
141
  "@types/node": "^22.13.13",
142
142
  "@types/nodemailer": "^6.4.17",
143
143
  "@types/pluralize": "^0.0.33",
144
+ "@types/swagger-jsdoc": "^6.0.4",
145
+ "@types/swagger-ui-express": "^4.1.8",
144
146
  "@typescript-eslint/eslint-plugin": "^6.0.0",
145
147
  "@typescript-eslint/parser": "^6.0.0",
146
148
  "esbuild": "^0.25.1",
147
149
  "jest": "^29.7.0",
148
150
  "mimetype": "^0.0.8",
151
+ "openapi-types": "^12.1.3",
149
152
  "prisma": "^6.4.1",
150
153
  "ts-jest": "^29.3.1",
151
154
  "ts-node": "^10.9.2",
@@ -153,8 +156,12 @@
153
156
  },
154
157
  "dependencies": {
155
158
  "chokidar": "^4.0.3",
159
+ "class-validator-jsonschema": "^5.0.2",
156
160
  "commander": "^13.1.0",
157
- "pluralize": "^8.0.0"
161
+ "pluralize": "^8.0.0",
162
+ "swagger-jsdoc": "^6.2.8",
163
+ "swagger-ui-express": "^5.0.1",
164
+ "zod-to-json-schema": "^3.24.6"
158
165
  },
159
166
  "peerDependencies": {
160
167
  "@prisma/client": "^6.4.1",
@@ -170,7 +177,7 @@
170
177
  "html-to-text": "^9.0.5",
171
178
  "jsonwebtoken": "^9.0.2",
172
179
  "mimetype": "^0.0.8",
173
- "multer": "1.4.5-lts.1",
180
+ "multer": "2.0.1",
174
181
  "nodemailer": "^6.10.0",
175
182
  "sharp": "^0.33.5",
176
183
  "zod": "^3.24.2"
@@ -183,6 +190,7 @@
183
190
  "onlyBuiltDependencies": [
184
191
  "@prisma/client",
185
192
  "@prisma/engines",
193
+ "@scarf/scarf",
186
194
  "esbuild",
187
195
  "prisma",
188
196
  "sharp"