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.
- package/dist/app.d.ts +10 -0
- package/dist/app.d.ts.map +1 -0
- package/dist/app.js +114 -0
- package/dist/app.js.map +1 -0
- package/dist/index.d.ts +21 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +51 -0
- package/dist/index.js.map +1 -0
- package/dist/modules/auth/auth.controller.d.ts +23 -0
- package/dist/modules/auth/auth.controller.d.ts.map +1 -0
- package/dist/modules/auth/auth.controller.js +317 -0
- package/dist/modules/auth/auth.controller.js.map +1 -0
- package/dist/modules/auth/auth.router.d.ts +4 -0
- package/dist/modules/auth/auth.router.d.ts.map +1 -0
- package/dist/modules/auth/auth.router.js +64 -0
- package/dist/modules/auth/auth.router.js.map +1 -0
- package/dist/modules/auth/auth.service.d.ts +16 -0
- package/dist/modules/auth/auth.service.d.ts.map +1 -0
- package/dist/modules/auth/auth.service.js +122 -0
- package/dist/modules/auth/auth.service.js.map +1 -0
- package/dist/modules/base/base.controller.d.ts +17 -0
- package/dist/modules/base/base.controller.d.ts.map +1 -0
- package/dist/modules/base/base.controller.js +296 -0
- package/dist/modules/base/base.controller.js.map +1 -0
- package/dist/modules/base/base.middlewares.d.ts +20 -0
- package/dist/modules/base/base.middlewares.d.ts.map +1 -0
- package/dist/modules/base/base.middlewares.js +86 -0
- package/dist/modules/base/base.middlewares.js.map +1 -0
- package/dist/modules/base/base.router.d.ts +4 -0
- package/dist/modules/base/base.router.d.ts.map +1 -0
- package/dist/modules/base/base.router.js +74 -0
- package/dist/modules/base/base.router.js.map +1 -0
- package/dist/modules/base/base.service.d.ts +32 -0
- package/dist/modules/base/base.service.d.ts.map +1 -0
- package/dist/modules/base/base.service.js +149 -0
- package/dist/modules/base/base.service.js.map +1 -0
- package/dist/modules/base/utils/base.helpers.d.ts +29 -0
- package/dist/modules/base/utils/base.helpers.d.ts.map +1 -0
- package/dist/modules/base/utils/base.helpers.js +106 -0
- package/dist/modules/base/utils/base.helpers.js.map +1 -0
- package/dist/modules/email/email.service.d.ts +22 -0
- package/dist/modules/email/email.service.d.ts.map +1 -0
- package/dist/modules/email/email.service.js +45 -0
- package/dist/modules/email/email.service.js.map +1 -0
- package/dist/modules/email/utils/email.helpers.d.ts +9 -0
- package/dist/modules/email/utils/email.helpers.d.ts.map +1 -0
- package/dist/modules/email/utils/email.helpers.js +25 -0
- package/dist/modules/email/utils/email.helpers.js.map +1 -0
- package/dist/modules/error-handler/error-handler.controller.d.ts +4 -0
- package/dist/modules/error-handler/error-handler.controller.d.ts.map +1 -0
- package/dist/modules/error-handler/error-handler.controller.js +182 -0
- package/dist/modules/error-handler/error-handler.controller.js.map +1 -0
- package/dist/modules/error-handler/utils/app-error.d.ts +11 -0
- package/dist/modules/error-handler/utils/app-error.d.ts.map +1 -0
- package/dist/modules/error-handler/utils/app-error.js +23 -0
- package/dist/modules/error-handler/utils/app-error.js.map +1 -0
- package/dist/modules/error-handler/utils/catch-async.d.ts +4 -0
- package/dist/modules/error-handler/utils/catch-async.d.ts.map +1 -0
- package/dist/modules/error-handler/utils/catch-async.js +9 -0
- package/dist/modules/error-handler/utils/catch-async.js.map +1 -0
- package/dist/modules/error-handler/utils/error-handler.helpers.d.ts +43 -0
- package/dist/modules/error-handler/utils/error-handler.helpers.d.ts.map +1 -0
- package/dist/modules/error-handler/utils/error-handler.helpers.js +209 -0
- package/dist/modules/error-handler/utils/error-handler.helpers.js.map +1 -0
- package/dist/modules/file-uploader/file-uploader.service.d.ts +20 -0
- package/dist/modules/file-uploader/file-uploader.service.d.ts.map +1 -0
- package/dist/modules/file-uploader/file-uploader.service.js +114 -0
- package/dist/modules/file-uploader/file-uploader.service.js.map +1 -0
- package/dist/paths.d.ts +2 -0
- package/dist/paths.d.ts.map +1 -0
- package/dist/paths.js +9 -0
- package/dist/paths.js.map +1 -0
- package/dist/utils/features/api.features.d.ts +20 -0
- package/dist/utils/features/api.features.d.ts.map +1 -0
- package/dist/utils/features/api.features.js +177 -0
- package/dist/utils/features/api.features.js.map +1 -0
- package/dist/utils/features/prisma.helpers.d.ts +3 -0
- package/dist/utils/features/prisma.helpers.d.ts.map +1 -0
- package/dist/utils/features/prisma.helpers.js +20 -0
- package/dist/utils/features/prisma.helpers.js.map +1 -0
- package/dist/utils/helpers/api.features.helpers.d.ts +41 -0
- package/dist/utils/helpers/api.features.helpers.d.ts.map +1 -0
- package/dist/utils/helpers/api.features.helpers.js +161 -0
- package/dist/utils/helpers/api.features.helpers.js.map +1 -0
- package/dist/utils/helpers/models.helpers.d.ts +21 -0
- package/dist/utils/helpers/models.helpers.d.ts.map +1 -0
- package/dist/utils/helpers/models.helpers.js +195 -0
- package/dist/utils/helpers/models.helpers.js.map +1 -0
- package/dist/utils/helpers/text.helpers.d.ts +2 -0
- package/dist/utils/helpers/text.helpers.d.ts.map +1 -0
- package/dist/utils/helpers/text.helpers.js +12 -0
- package/dist/utils/helpers/text.helpers.js.map +1 -0
- package/dist/utils/permissions/index.d.ts +3 -0
- package/dist/utils/permissions/index.d.ts.map +1 -0
- package/dist/utils/permissions/index.js +17 -0
- package/dist/utils/permissions/index.js.map +1 -0
- package/dist/utils/scripts/export-prisma-types.d.ts +2 -0
- package/dist/utils/scripts/export-prisma-types.d.ts.map +1 -0
- package/dist/utils/scripts/export-prisma-types.js +152 -0
- package/dist/utils/scripts/export-prisma-types.js.map +1 -0
- package/dist/utils/scripts/generate-zod-schemas.d.ts +2 -0
- package/dist/utils/scripts/generate-zod-schemas.d.ts.map +1 -0
- package/dist/utils/scripts/generate-zod-schemas.js +121 -0
- package/dist/utils/scripts/generate-zod-schemas.js.map +1 -0
- package/dist/utils/scripts/prisma-db-push.d.ts +2 -0
- package/dist/utils/scripts/prisma-db-push.d.ts.map +1 -0
- package/dist/utils/scripts/prisma-db-push.js +24 -0
- package/dist/utils/scripts/prisma-db-push.js.map +1 -0
- package/dist/utils/validate-dto.d.ts +3 -0
- package/dist/utils/validate-dto.d.ts.map +1 -0
- package/dist/utils/validate-dto.js +17 -0
- package/dist/utils/validate-dto.js.map +1 -0
- 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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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.
|
|
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",
|