arkos 0.0.2 → 0.0.3

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 (113) hide show
  1. package/dist/app.d.ts +10 -0
  2. package/dist/app.d.ts.map +1 -0
  3. package/dist/app.js +114 -0
  4. package/dist/app.js.map +1 -0
  5. package/dist/index.d.ts +21 -0
  6. package/dist/index.d.ts.map +1 -0
  7. package/dist/index.js +51 -0
  8. package/dist/index.js.map +1 -0
  9. package/dist/modules/auth/auth.controller.d.ts +23 -0
  10. package/dist/modules/auth/auth.controller.d.ts.map +1 -0
  11. package/dist/modules/auth/auth.controller.js +317 -0
  12. package/dist/modules/auth/auth.controller.js.map +1 -0
  13. package/dist/modules/auth/auth.router.d.ts +4 -0
  14. package/dist/modules/auth/auth.router.d.ts.map +1 -0
  15. package/dist/modules/auth/auth.router.js +64 -0
  16. package/dist/modules/auth/auth.router.js.map +1 -0
  17. package/dist/modules/auth/auth.service.d.ts +16 -0
  18. package/dist/modules/auth/auth.service.d.ts.map +1 -0
  19. package/dist/modules/auth/auth.service.js +122 -0
  20. package/dist/modules/auth/auth.service.js.map +1 -0
  21. package/dist/modules/base/base.controller.d.ts +17 -0
  22. package/dist/modules/base/base.controller.d.ts.map +1 -0
  23. package/dist/modules/base/base.controller.js +296 -0
  24. package/dist/modules/base/base.controller.js.map +1 -0
  25. package/dist/modules/base/base.middlewares.d.ts +20 -0
  26. package/dist/modules/base/base.middlewares.d.ts.map +1 -0
  27. package/dist/modules/base/base.middlewares.js +86 -0
  28. package/dist/modules/base/base.middlewares.js.map +1 -0
  29. package/dist/modules/base/base.router.d.ts +4 -0
  30. package/dist/modules/base/base.router.d.ts.map +1 -0
  31. package/dist/modules/base/base.router.js +74 -0
  32. package/dist/modules/base/base.router.js.map +1 -0
  33. package/dist/modules/base/base.service.d.ts +32 -0
  34. package/dist/modules/base/base.service.d.ts.map +1 -0
  35. package/dist/modules/base/base.service.js +149 -0
  36. package/dist/modules/base/base.service.js.map +1 -0
  37. package/dist/modules/base/utils/base.helpers.d.ts +29 -0
  38. package/dist/modules/base/utils/base.helpers.d.ts.map +1 -0
  39. package/dist/modules/base/utils/base.helpers.js +106 -0
  40. package/dist/modules/base/utils/base.helpers.js.map +1 -0
  41. package/dist/modules/email/email.service.d.ts +22 -0
  42. package/dist/modules/email/email.service.d.ts.map +1 -0
  43. package/dist/modules/email/email.service.js +45 -0
  44. package/dist/modules/email/email.service.js.map +1 -0
  45. package/dist/modules/email/utils/email.helpers.d.ts +9 -0
  46. package/dist/modules/email/utils/email.helpers.d.ts.map +1 -0
  47. package/dist/modules/email/utils/email.helpers.js +25 -0
  48. package/dist/modules/email/utils/email.helpers.js.map +1 -0
  49. package/dist/modules/error-handler/error-handler.controller.d.ts +4 -0
  50. package/dist/modules/error-handler/error-handler.controller.d.ts.map +1 -0
  51. package/dist/modules/error-handler/error-handler.controller.js +182 -0
  52. package/dist/modules/error-handler/error-handler.controller.js.map +1 -0
  53. package/dist/modules/error-handler/utils/app-error.d.ts +11 -0
  54. package/dist/modules/error-handler/utils/app-error.d.ts.map +1 -0
  55. package/dist/modules/error-handler/utils/app-error.js +23 -0
  56. package/dist/modules/error-handler/utils/app-error.js.map +1 -0
  57. package/dist/modules/error-handler/utils/catch-async.d.ts +4 -0
  58. package/dist/modules/error-handler/utils/catch-async.d.ts.map +1 -0
  59. package/dist/modules/error-handler/utils/catch-async.js +9 -0
  60. package/dist/modules/error-handler/utils/catch-async.js.map +1 -0
  61. package/dist/modules/error-handler/utils/error-handler.helpers.d.ts +43 -0
  62. package/dist/modules/error-handler/utils/error-handler.helpers.d.ts.map +1 -0
  63. package/dist/modules/error-handler/utils/error-handler.helpers.js +209 -0
  64. package/dist/modules/error-handler/utils/error-handler.helpers.js.map +1 -0
  65. package/dist/modules/file-uploader/file-uploader.service.d.ts +20 -0
  66. package/dist/modules/file-uploader/file-uploader.service.d.ts.map +1 -0
  67. package/dist/modules/file-uploader/file-uploader.service.js +114 -0
  68. package/dist/modules/file-uploader/file-uploader.service.js.map +1 -0
  69. package/dist/paths.d.ts +2 -0
  70. package/dist/paths.d.ts.map +1 -0
  71. package/dist/paths.js +9 -0
  72. package/dist/paths.js.map +1 -0
  73. package/dist/utils/features/api.features.d.ts +20 -0
  74. package/dist/utils/features/api.features.d.ts.map +1 -0
  75. package/dist/utils/features/api.features.js +177 -0
  76. package/dist/utils/features/api.features.js.map +1 -0
  77. package/dist/utils/features/prisma.helpers.d.ts +3 -0
  78. package/dist/utils/features/prisma.helpers.d.ts.map +1 -0
  79. package/dist/utils/features/prisma.helpers.js +20 -0
  80. package/dist/utils/features/prisma.helpers.js.map +1 -0
  81. package/dist/utils/helpers/api.features.helpers.d.ts +41 -0
  82. package/dist/utils/helpers/api.features.helpers.d.ts.map +1 -0
  83. package/dist/utils/helpers/api.features.helpers.js +161 -0
  84. package/dist/utils/helpers/api.features.helpers.js.map +1 -0
  85. package/dist/utils/helpers/models.helpers.d.ts +21 -0
  86. package/dist/utils/helpers/models.helpers.d.ts.map +1 -0
  87. package/dist/utils/helpers/models.helpers.js +195 -0
  88. package/dist/utils/helpers/models.helpers.js.map +1 -0
  89. package/dist/utils/helpers/text.helpers.d.ts +2 -0
  90. package/dist/utils/helpers/text.helpers.d.ts.map +1 -0
  91. package/dist/utils/helpers/text.helpers.js +12 -0
  92. package/dist/utils/helpers/text.helpers.js.map +1 -0
  93. package/dist/utils/permissions/index.d.ts +3 -0
  94. package/dist/utils/permissions/index.d.ts.map +1 -0
  95. package/dist/utils/permissions/index.js +17 -0
  96. package/dist/utils/permissions/index.js.map +1 -0
  97. package/dist/utils/scripts/export-prisma-types.d.ts +2 -0
  98. package/dist/utils/scripts/export-prisma-types.d.ts.map +1 -0
  99. package/dist/utils/scripts/export-prisma-types.js +152 -0
  100. package/dist/utils/scripts/export-prisma-types.js.map +1 -0
  101. package/dist/utils/scripts/generate-zod-schemas.d.ts +2 -0
  102. package/dist/utils/scripts/generate-zod-schemas.d.ts.map +1 -0
  103. package/dist/utils/scripts/generate-zod-schemas.js +121 -0
  104. package/dist/utils/scripts/generate-zod-schemas.js.map +1 -0
  105. package/dist/utils/scripts/prisma-db-push.d.ts +2 -0
  106. package/dist/utils/scripts/prisma-db-push.d.ts.map +1 -0
  107. package/dist/utils/scripts/prisma-db-push.js +24 -0
  108. package/dist/utils/scripts/prisma-db-push.js.map +1 -0
  109. package/dist/utils/validate-dto.d.ts +3 -0
  110. package/dist/utils/validate-dto.d.ts.map +1 -0
  111. package/dist/utils/validate-dto.js +17 -0
  112. package/dist/utils/validate-dto.js.map +1 -0
  113. package/package.json +1 -1
@@ -0,0 +1,195 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.prismaModelRelationFields = exports.models = void 0;
40
+ exports.importPrismaModelModules = importPrismaModelModules;
41
+ exports.getAppWidthEjectedMiddlewares = getAppWidthEjectedMiddlewares;
42
+ exports.getPrismaModelRelations = getPrismaModelRelations;
43
+ const paths_1 = require("../../paths");
44
+ const path_1 = __importDefault(require("path"));
45
+ const fs_1 = __importDefault(require("fs"));
46
+ const change_case_all_1 = require("change-case-all");
47
+ const app_1 = require("../../app");
48
+ async function importPrismaModelModules(modelName) {
49
+ const kebabModelName = (0, change_case_all_1.kebabCase)(modelName);
50
+ const moduleDir = path_1.default.resolve(paths_1.ROOT_DIR, "src", "modules", modelName);
51
+ const extension = process.env.NODE_ENV === "production" ? "js" : "ts";
52
+ // Define the expected file paths
53
+ const middlewaresFile = path_1.default.join(moduleDir, `${kebabModelName}.middlewares.${extension}`);
54
+ const authConfigsFile = path_1.default.join(moduleDir, `${kebabModelName}.auth-configs.${extension}`);
55
+ const prismaQueryOptionsFile = path_1.default.join(moduleDir, `${kebabModelName}.prisma-query-options.${extension}`);
56
+ // Initialize result object
57
+ const result = {};
58
+ // Try to import middlewares
59
+ try {
60
+ if (fs_1.default.existsSync(middlewaresFile)) {
61
+ const middlewareModule = await Promise.resolve(`${middlewaresFile}`).then(s => __importStar(require(s)));
62
+ result.middlewares = middlewareModule;
63
+ }
64
+ }
65
+ catch (error) {
66
+ console.error(`Error importing middlewares for model "${modelName}":`, error);
67
+ }
68
+ // Try to import auth configs
69
+ try {
70
+ if (fs_1.default.existsSync(authConfigsFile)) {
71
+ const authConfigsModule = await Promise.resolve(`${authConfigsFile}`).then(s => __importStar(require(s)));
72
+ result.authConfigs = authConfigsModule.default || authConfigsModule;
73
+ }
74
+ }
75
+ catch (error) {
76
+ console.error(`Error importing auth configs for model "${modelName}":`, error);
77
+ }
78
+ // Try to import prisma query options
79
+ try {
80
+ if (fs_1.default.existsSync(prismaQueryOptionsFile)) {
81
+ const prismaQueryOptionsModule = await Promise.resolve(`${prismaQueryOptionsFile}`).then(s => __importStar(require(s)));
82
+ result.prismaQueryOptions =
83
+ prismaQueryOptionsModule.default || prismaQueryOptionsModule;
84
+ }
85
+ }
86
+ catch (error) {
87
+ console.error(`Error importing prisma query options for model "${modelName}":`, error);
88
+ }
89
+ return result;
90
+ }
91
+ async function getAppWidthEjectedMiddlewares(app) {
92
+ const extension = process.env.NODE_ENV === "production" ? "js" : "ts";
93
+ const appWithEjectedMiddlewaresPath = path_1.default.resolve(paths_1.ROOT_DIR, "src", `app.${extension}`);
94
+ if (!appWithEjectedMiddlewaresPath) {
95
+ return null;
96
+ }
97
+ // const middlewarePath = path.join(middlewaresDir, matchingFile)
98
+ try {
99
+ const appEjected = await Promise.resolve(`${appWithEjectedMiddlewaresPath}`).then(s => __importStar(require(s)));
100
+ return appEjected;
101
+ }
102
+ catch (error) {
103
+ return null;
104
+ }
105
+ }
106
+ const models = [];
107
+ exports.models = models;
108
+ (() => {
109
+ const prisma = app_1.initConfigs.prisma;
110
+ Object.keys(prisma || {}).forEach((key) => {
111
+ const value = prisma[key];
112
+ if (value &&
113
+ typeof value === "object" &&
114
+ typeof value.findUnique === "function") {
115
+ models.push(key);
116
+ }
117
+ });
118
+ })();
119
+ const schemaFolderPath = `./prisma/schema`;
120
+ // Read and process the schema files once
121
+ const prismaModelRelationFields = {};
122
+ exports.prismaModelRelationFields = prismaModelRelationFields;
123
+ const files = fs_1.default
124
+ .readdirSync(schemaFolderPath)
125
+ .filter((file) => file.endsWith(".prisma"));
126
+ for (const model of models) {
127
+ const modelName = (0, change_case_all_1.pascalCase)(model);
128
+ let modelFile;
129
+ for (const file of files) {
130
+ const filePath = path_1.default.join(schemaFolderPath, file);
131
+ const stats = fs_1.default.statSync(filePath);
132
+ if (stats.isFile()) {
133
+ const content = fs_1.default.readFileSync(filePath, "utf-8");
134
+ if (content.includes(`model ${modelName} {`)) {
135
+ modelFile = file;
136
+ break;
137
+ }
138
+ }
139
+ }
140
+ if (!modelFile) {
141
+ throw new Error(`Model ${modelName} not found`);
142
+ }
143
+ const content = fs_1.default.readFileSync(path_1.default.join(schemaFolderPath, modelFile), "utf-8");
144
+ const modelStart = content.indexOf(`model ${modelName} {`);
145
+ const modelEnd = content.indexOf("}", modelStart);
146
+ const modelDefinition = content.slice(modelStart, modelEnd);
147
+ const relations = {
148
+ singular: [],
149
+ list: [],
150
+ };
151
+ const lines = modelDefinition.split("\n");
152
+ for (const line of lines) {
153
+ const trimmedLine = line.trim();
154
+ if (!trimmedLine || trimmedLine.startsWith("model"))
155
+ continue;
156
+ // Check for relations
157
+ const [fieldName, type] = trimmedLine.split(/\s+/);
158
+ const cleanType = type?.replace("[]", "").replace("?", "");
159
+ if (trimmedLine.includes("@relation") ||
160
+ trimmedLine.match(/\s+\w+(\[\])?(\s+@|$)/) ||
161
+ models.includes((0, change_case_all_1.camelCase)(cleanType || ""))
162
+ // content.includes(`model ${cleanType} {`)
163
+ ) {
164
+ const modelStart = content.indexOf(`enum ${cleanType} {`);
165
+ if (!cleanType ||
166
+ modelStart >= 0 ||
167
+ cleanType === "String" ||
168
+ cleanType === "Int" ||
169
+ cleanType === "Float" ||
170
+ cleanType === "Boolean" ||
171
+ cleanType === "DateTime" ||
172
+ cleanType === "Bytes" ||
173
+ cleanType === "Decimal" ||
174
+ cleanType === "BigInt" ||
175
+ cleanType === "Json") {
176
+ continue;
177
+ }
178
+ if (!type?.includes("[]")) {
179
+ relations.singular.push({ name: fieldName, type: cleanType });
180
+ }
181
+ else {
182
+ relations.list.push({ name: fieldName, type: cleanType });
183
+ }
184
+ }
185
+ prismaModelRelationFields[modelName] = relations;
186
+ }
187
+ }
188
+ // Function to get relations from the cache
189
+ function getPrismaModelRelations(modelName) {
190
+ modelName = (0, change_case_all_1.pascalCase)(modelName);
191
+ if (!(modelName in prismaModelRelationFields))
192
+ return;
193
+ return prismaModelRelationFields[modelName];
194
+ }
195
+ //# sourceMappingURL=models.helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"models.helpers.js","sourceRoot":"","sources":["../../../src/utils/helpers/models.helpers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function capitalize(text: string): string;
2
+ //# sourceMappingURL=text.helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text.helpers.d.ts","sourceRoot":"","sources":["../../../src/utils/helpers/text.helpers.ts"],"names":[],"mappings":"AAAA,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAM/C"}
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.capitalize = capitalize;
4
+ function capitalize(text) {
5
+ if (!text)
6
+ return '';
7
+ return text
8
+ .split(' ')
9
+ .map((word) => word.charAt(0).toUpperCase() + word.slice(1).toLowerCase())
10
+ .join(' ');
11
+ }
12
+ //# sourceMappingURL=text.helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text.helpers.js","sourceRoot":"","sources":["../../../src/utils/helpers/text.helpers.ts"],"names":[],"mappings":";;AAAA,gCAMC;AAND,SAAgB,UAAU,CAAC,IAAY;IACrC,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAA;IACpB,OAAO,IAAI;SACR,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;SACzE,IAAI,CAAC,GAAG,CAAC,CAAA;AACd,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { AuthConfigs } from '../../types';
2
+ export declare const permissions: Record<string, AuthConfigs>;
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/permissions/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAEzC,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAYnD,CAAA"}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.permissions = void 0;
4
+ exports.permissions = {
5
+ uploads: {
6
+ authenticationControl: {
7
+ view: false,
8
+ },
9
+ accessControl: {
10
+ view: ['admin', 'customer'],
11
+ create: ['admin'],
12
+ update: ['admin'],
13
+ delete: ['admin'],
14
+ },
15
+ },
16
+ };
17
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/permissions/index.ts"],"names":[],"mappings":";;;AAEa,QAAA,WAAW,GAAgC;IACtD,OAAO,EAAE;QACP,qBAAqB,EAAE;YACrB,IAAI,EAAE,KAAK;SACZ;QACD,aAAa,EAAE;YACb,IAAI,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC;YAC3B,MAAM,EAAE,CAAC,OAAO,CAAC;YACjB,MAAM,EAAE,CAAC,OAAO,CAAC;YACjB,MAAM,EAAE,CAAC,OAAO,CAAC;SAClB;KACF;CACF,CAAA"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=export-prisma-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"export-prisma-types.d.ts","sourceRoot":"","sources":["../../../src/utils/scripts/export-prisma-types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,152 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ const fs = __importStar(require("fs"));
37
+ const path = __importStar(require("path"));
38
+ const SCHEMA_FOLDER_PATH = './prisma/schema';
39
+ function getAllSchemaContent() {
40
+ const files = fs
41
+ .readdirSync(SCHEMA_FOLDER_PATH)
42
+ .filter((file) => file.endsWith('.prisma'));
43
+ let combinedSchema = '';
44
+ for (const file of files) {
45
+ const filePath = path.join(SCHEMA_FOLDER_PATH, file);
46
+ const content = fs.readFileSync(filePath, 'utf-8');
47
+ combinedSchema += '\n' + content;
48
+ }
49
+ return combinedSchema;
50
+ }
51
+ function isFieldDefinition(line) {
52
+ // Ignore lines that start with @@ (model attributes)
53
+ if (line.trim().startsWith('@@'))
54
+ return false;
55
+ // Ignore empty lines and comments
56
+ if (!line.trim() || line.trim().startsWith('//'))
57
+ return false;
58
+ // Must start with a valid field name (letter or underscore)
59
+ if (!/^\s*[a-zA-Z_]\w*\s/.test(line))
60
+ return false;
61
+ // Must have at least a name and type
62
+ const parts = line.trim().split(/\s+/);
63
+ if (parts.length < 2)
64
+ return false;
65
+ return true;
66
+ }
67
+ function parseFieldType(fieldType, line) {
68
+ // Remove any ? or [] from the type for the switch
69
+ const baseType = fieldType.replace('?', '').replace('[]', '');
70
+ const isArray = fieldType.includes('[]');
71
+ // If it's a relation (has @relation), keep the original type
72
+ if (line.includes('@relation')) {
73
+ return isArray ? `${baseType}[]` : baseType;
74
+ }
75
+ // Convert Prisma scalar types to TypeScript types
76
+ let tsType = baseType;
77
+ switch (baseType) {
78
+ case 'String':
79
+ tsType = 'string';
80
+ break;
81
+ case 'Int':
82
+ case 'Float':
83
+ case 'Decimal':
84
+ tsType = 'number';
85
+ break;
86
+ case 'Boolean':
87
+ tsType = 'boolean';
88
+ break;
89
+ case 'DateTime':
90
+ tsType = 'Date';
91
+ break;
92
+ case 'Json':
93
+ tsType = 'any';
94
+ break;
95
+ case 'BigInt':
96
+ tsType = 'bigint';
97
+ break;
98
+ case 'Bytes':
99
+ tsType = 'Buffer';
100
+ break;
101
+ }
102
+ return isArray ? `${tsType}[]` : tsType;
103
+ }
104
+ function generateTypes() {
105
+ const schemaContent = getAllSchemaContent();
106
+ let typeDefinitions = `// Auto-generated types from Prisma Schema\n\n`;
107
+ // Generate enum types
108
+ const enumRegex = /enum\s+(\w+)\s*{([^}]*)}/g;
109
+ let enumMatch;
110
+ while ((enumMatch = enumRegex.exec(schemaContent)) !== null) {
111
+ const [_, enumName, enumContent] = enumMatch;
112
+ const values = enumContent
113
+ .trim()
114
+ .split('\n')
115
+ .map((line) => line.trim())
116
+ .filter(Boolean);
117
+ typeDefinitions += `export enum ${enumName} {\n`;
118
+ values.forEach((value) => {
119
+ typeDefinitions += ` ${value} = "${value}",\n`;
120
+ });
121
+ typeDefinitions += `}\n\n`;
122
+ }
123
+ // Generate interface types
124
+ const modelRegex = /model\s+(\w+)\s*{([^}]*)}/g;
125
+ let modelMatch;
126
+ while ((modelMatch = modelRegex.exec(schemaContent)) !== null) {
127
+ const [_, modelName, modelContent] = modelMatch;
128
+ typeDefinitions += `export interface ${modelName} {\n`;
129
+ const lines = modelContent.split('\n');
130
+ for (const line of lines) {
131
+ if (!isFieldDefinition(line))
132
+ continue;
133
+ const parts = line.trim().split(/\s+/);
134
+ const fieldName = parts[0];
135
+ const fieldType = parts[1];
136
+ const isOptional = line.includes('?');
137
+ const parsedType = parseFieldType(fieldType, line);
138
+ typeDefinitions += ` ${fieldName}${isOptional ? '?' : ''}: ${parsedType};\n`;
139
+ }
140
+ typeDefinitions += `}\n\n`;
141
+ }
142
+ const outputDir = path.join(process.cwd(), '.cache/types');
143
+ if (!fs.existsSync(outputDir)) {
144
+ fs.mkdirSync(outputDir, { recursive: true });
145
+ }
146
+ const outputPath = path.join(outputDir, 'prisma.ts');
147
+ fs.writeFileSync(outputPath, typeDefinitions);
148
+ console.log('Types generated successfully at:', outputPath);
149
+ }
150
+ // Run the type generator
151
+ generateTypes();
152
+ //# sourceMappingURL=export-prisma-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"export-prisma-types.js","sourceRoot":"","sources":["../../../src/utils/scripts/export-prisma-types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=generate-zod-schemas.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-zod-schemas.d.ts","sourceRoot":"","sources":["../../../src/utils/scripts/generate-zod-schemas.ts"],"names":[],"mappings":""}
@@ -0,0 +1,121 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const promises_1 = __importDefault(require("fs/promises"));
7
+ const path_1 = __importDefault(require("path"));
8
+ async function generateZodSchemas(inputContent) {
9
+ let output = `import { z } from "zod";\n\n`;
10
+ // Extract enum names first to help identify enum types later
11
+ const enumNames = new Set();
12
+ const enumRegex = /export enum (\w+) {([^}]+)}/g;
13
+ let enumMatch;
14
+ while ((enumMatch = enumRegex.exec(inputContent)) !== null) {
15
+ const enumName = enumMatch[1];
16
+ const enumValues = enumMatch[2];
17
+ enumNames.add(enumName);
18
+ // Keep original enum definition
19
+ output += `export enum ${enumName} {\n${enumValues}\n}\n\n`;
20
+ }
21
+ // Helper function to convert type to zod schema
22
+ function typeToZodSchema(type, isOptional = false) {
23
+ type = type.trim();
24
+ const baseSchema = (() => {
25
+ if (type.includes("Date")) {
26
+ return `z.date().or(z.string()).refine((val) => val instanceof Date || !isNaN(Date.parse(val)), "Data inválida")`;
27
+ }
28
+ switch (type) {
29
+ case "string":
30
+ return "z.string()";
31
+ case "number":
32
+ return "z.number()";
33
+ case "boolean":
34
+ return "z.boolean()";
35
+ case "any":
36
+ return "z.any()";
37
+ default:
38
+ // Handle arrays
39
+ if (type.includes("[]")) {
40
+ const arrayType = type.replace("[]", "");
41
+ // Handle primitive types in arrays
42
+ switch (arrayType) {
43
+ case "string":
44
+ return "z.array(z.string())";
45
+ case "number":
46
+ return "z.array(z.number())";
47
+ case "boolean":
48
+ return "z.array(z.boolean())";
49
+ default:
50
+ // Check if it's an enum type
51
+ if (enumNames.has(arrayType)) {
52
+ return `z.array(z.nativeEnum(${arrayType}))`;
53
+ }
54
+ // Otherwise it's a relation/model type
55
+ return `z.array(${arrayType}Schema)`;
56
+ }
57
+ }
58
+ // Handle single types
59
+ if (type.match(/^[A-Z]/)) {
60
+ // Check if it's an enum type
61
+ if (enumNames.has(type)) {
62
+ return `z.nativeEnum(${type})`;
63
+ }
64
+ // Otherwise it's a relation/model type
65
+ return `${type}Schema`;
66
+ }
67
+ return "z.any()";
68
+ }
69
+ })();
70
+ return isOptional ? `${baseSchema}.optional()` : baseSchema;
71
+ }
72
+ // Extract and generate interface schemas
73
+ const interfaceRegex = /export interface (\w+) {([^}]+)}/g;
74
+ let interfaceMatch;
75
+ while ((interfaceMatch = interfaceRegex.exec(inputContent)) !== null) {
76
+ const interfaceName = interfaceMatch[1];
77
+ const interfaceBody = interfaceMatch[2];
78
+ // Parse interface properties
79
+ const properties = interfaceBody
80
+ .split(";")
81
+ .map((line) => line.trim())
82
+ .filter((line) => line)
83
+ .map((line) => {
84
+ const [propName, type] = line.split(":").map((part) => part.trim());
85
+ // Skip createdAt, updatedAt, and deletedAt
86
+ if (["createdAt", "updatedAt", "deletedAt"].includes(propName.replace("?", ""))) {
87
+ return null;
88
+ }
89
+ const isOptional = propName.endsWith("?");
90
+ const cleanPropName = propName.replace("?", "");
91
+ return { name: cleanPropName, type, isOptional };
92
+ })
93
+ .filter((prop) => prop !== null);
94
+ output += `export const ${interfaceName}Schema = z.object({\n`;
95
+ properties.forEach((prop, index) => {
96
+ if (prop) {
97
+ output += ` ${prop.name}: ${typeToZodSchema(prop.type, prop.isOptional)}`;
98
+ if (index < properties.length - 1)
99
+ output += ",";
100
+ output += "\n";
101
+ }
102
+ });
103
+ output += "});\n\n";
104
+ }
105
+ return output;
106
+ }
107
+ // Main execution
108
+ async function main() {
109
+ try {
110
+ const inputContent = await promises_1.default.readFile(path_1.default.join(process.cwd(), ".cache/types", "prisma.ts"), "utf-8");
111
+ const generatedSchemas = await generateZodSchemas(inputContent);
112
+ await promises_1.default.writeFile(path_1.default.join(process.cwd(), ".cache/generated-schemas.ts"), generatedSchemas);
113
+ console.info("Zod schemas generated successfully!");
114
+ }
115
+ catch (error) {
116
+ console.error("Error generating schemas:", error);
117
+ process.exit(1);
118
+ }
119
+ }
120
+ main();
121
+ //# sourceMappingURL=generate-zod-schemas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-zod-schemas.js","sourceRoot":"","sources":["../../../src/utils/scripts/generate-zod-schemas.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=prisma-db-push.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prisma-db-push.d.ts","sourceRoot":"","sources":["../../../src/utils/scripts/prisma-db-push.ts"],"names":[],"mappings":""}
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const child_process_1 = require("child_process");
7
+ const path_1 = __importDefault(require("path"));
8
+ const dotenv_1 = __importDefault(require("dotenv"));
9
+ const os_1 = __importDefault(require("os"));
10
+ // Define o ambiente, padrão para "development" se não for especificado
11
+ const ENV = process.env.NODE_ENV || 'development';
12
+ // Carrega o arquivo correto
13
+ const envFile = path_1.default.resolve(process.cwd(), `.env.${ENV}`);
14
+ dotenv_1.default.config({ path: envFile });
15
+ if (!process.env.DATABASE_URL) {
16
+ console.error(`❌ DATABASE_URL não encontrado no arquivo ${envFile}`);
17
+ process.exit(1);
18
+ }
19
+ console.info(`🚀 Rodando Prisma DB Push para o ambiente: ${ENV}...`);
20
+ const command = os_1.default.platform() === 'win32'
21
+ ? `set DATABASE_URL="${process.env.DATABASE_URL}" && npx prisma db push`
22
+ : `DATABASE_URL="${process.env.DATABASE_URL}" npx prisma db push`;
23
+ (0, child_process_1.execSync)(command, { stdio: 'inherit' });
24
+ //# sourceMappingURL=prisma-db-push.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prisma-db-push.js","sourceRoot":"","sources":["../../../src/utils/scripts/prisma-db-push.ts"],"names":[],"mappings":";;;;;AAAA,iDAAwC;AACxC,gDAAuB;AACvB,oDAA2B;AAC3B,4CAAmB;AAEnB,uEAAuE;AACvE,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,aAAa,CAAA;AAEjD,4BAA4B;AAC5B,MAAM,OAAO,GAAG,cAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,GAAG,EAAE,CAAC,CAAA;AAC1D,gBAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAA;AAEhC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;IAC9B,OAAO,CAAC,KAAK,CAAC,4CAA4C,OAAO,EAAE,CAAC,CAAA;IACpE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACjB,CAAC;AAED,OAAO,CAAC,IAAI,CAAC,8CAA8C,GAAG,KAAK,CAAC,CAAA;AAEpE,MAAM,OAAO,GACX,YAAE,CAAC,QAAQ,EAAE,KAAK,OAAO;IACvB,CAAC,CAAC,qBAAqB,OAAO,CAAC,GAAG,CAAC,YAAY,yBAAyB;IACxE,CAAC,CAAC,iBAAiB,OAAO,CAAC,GAAG,CAAC,YAAY,sBAAsB,CAAA;AAErE,IAAA,wBAAQ,EAAC,OAAO,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAA"}
@@ -0,0 +1,3 @@
1
+ import { ClassConstructor } from 'class-transformer';
2
+ export default function validateDto<T extends object = any>(DtoClass: ClassConstructor<T>, data: Record<string, any>): Promise<T>;
3
+ //# sourceMappingURL=validate-dto.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate-dto.d.ts","sourceRoot":"","sources":["../../src/utils/validate-dto.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAmB,MAAM,mBAAmB,CAAA;AAIrE,wBAA8B,WAAW,CAAC,CAAC,SAAS,MAAM,GAAG,GAAG,EAC9D,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAC7B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GACxB,OAAO,CAAC,CAAC,CAAC,CAKZ"}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.default = validateDto;
7
+ const class_transformer_1 = require("class-transformer");
8
+ const class_validator_1 = require("class-validator");
9
+ const app_error_1 = __importDefault(require("../modules/error-handler/utils/app-error"));
10
+ async function validateDto(DtoClass, data) {
11
+ const dataDto = (0, class_transformer_1.plainToInstance)(DtoClass, data);
12
+ const errors = await (0, class_validator_1.validate)(dataDto);
13
+ if (errors.length > 0)
14
+ throw new app_error_1.default('Invalid Data', 400, errors);
15
+ return dataDto;
16
+ }
17
+ //# sourceMappingURL=validate-dto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate-dto.js","sourceRoot":"","sources":["../../src/utils/validate-dto.ts"],"names":[],"mappings":";;;;;AAIA,8BAQC;AAZD,yDAAqE;AACrE,qDAA0C;AAC1C,yFAA+D;AAEhD,KAAK,UAAU,WAAW,CACvC,QAA6B,EAC7B,IAAyB;IAEzB,MAAM,OAAO,GAAG,IAAA,mCAAe,EAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;IAC/C,MAAM,MAAM,GAAG,MAAM,IAAA,0BAAQ,EAAC,OAAO,CAAC,CAAA;IACtC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;QAAE,MAAM,IAAI,mBAAQ,CAAC,cAAc,EAAE,GAAG,EAAE,MAAM,CAAC,CAAA;IACtE,OAAO,OAAO,CAAA;AAChB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "arkos",
3
- "version": "0.0.2",
3
+ "version": "0.0.3",
4
4
  "description": "A super customizable TypeScript package for auto-generating API routes with built-in authentication, email service, error handling, file upload routes, image upload optimization, and seamless Prisma integration.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",