arkos 1.0.18-beta → 1.0.20-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 (144) hide show
  1. package/dist/cjs/app.js +1 -1
  2. package/dist/cjs/app.js.map +1 -1
  3. package/dist/cjs/exports/middlewares/index.js +7 -0
  4. package/dist/cjs/exports/middlewares/index.js.map +1 -0
  5. package/dist/cjs/exports/utils/index.js.map +1 -1
  6. package/dist/cjs/modules/auth/auth.controller.js +38 -37
  7. package/dist/cjs/modules/auth/auth.controller.js.map +1 -1
  8. package/dist/cjs/modules/auth/auth.router.js +4 -5
  9. package/dist/cjs/modules/auth/auth.router.js.map +1 -1
  10. package/dist/cjs/modules/auth/auth.service.js +27 -24
  11. package/dist/cjs/modules/auth/auth.service.js.map +1 -1
  12. package/dist/cjs/modules/auth/utils/helpers/auth.controller.helpers.js +8 -12
  13. package/dist/cjs/modules/auth/utils/helpers/auth.controller.helpers.js.map +1 -1
  14. package/dist/cjs/modules/auth/utils/helpers/auth.helpers.js +19 -0
  15. package/dist/cjs/modules/auth/utils/helpers/auth.helpers.js.map +1 -0
  16. package/dist/cjs/modules/base/base.controller.js +2 -29
  17. package/dist/cjs/modules/base/base.controller.js.map +1 -1
  18. package/dist/cjs/modules/base/base.middlewares.js +42 -1
  19. package/dist/cjs/modules/base/base.middlewares.js.map +1 -1
  20. package/dist/cjs/modules/base/base.router.js +2 -2
  21. package/dist/cjs/modules/base/base.router.js.map +1 -1
  22. package/dist/cjs/modules/base/utils/helpers/base.helpers.js +183 -0
  23. package/dist/cjs/modules/base/utils/helpers/base.helpers.js.map +1 -0
  24. package/dist/cjs/modules/base/utils/helpers/base.router.helpers.js +2 -3
  25. package/dist/cjs/modules/base/utils/helpers/base.router.helpers.js.map +1 -1
  26. package/dist/cjs/modules/base/utils/helpers/base.service.helpers.js +9 -11
  27. package/dist/cjs/modules/base/utils/helpers/base.service.helpers.js.map +1 -1
  28. package/dist/cjs/modules/error-handler/error-handler.controller.js +2 -0
  29. package/dist/cjs/modules/error-handler/error-handler.controller.js.map +1 -1
  30. package/dist/cjs/modules/error-handler/utils/catch-async.js +1 -1
  31. package/dist/cjs/modules/error-handler/utils/catch-async.js.map +1 -1
  32. package/dist/cjs/modules/file-uploader/file-uploader.service.js +4 -4
  33. package/dist/cjs/modules/file-uploader/file-uploader.service.js.map +1 -1
  34. package/dist/cjs/modules/file-uploader/utils/helpers/file-uploader.helpers.js +7 -5
  35. package/dist/cjs/modules/file-uploader/utils/helpers/file-uploader.helpers.js.map +1 -1
  36. package/dist/cjs/server.js +1 -1
  37. package/dist/cjs/server.js.map +1 -1
  38. package/dist/cjs/types/arkos-config.js.map +1 -1
  39. package/dist/cjs/types/auth.js.map +1 -1
  40. package/dist/cjs/types/index.js.map +1 -1
  41. package/dist/cjs/types/prisma-model-router-config.js +3 -0
  42. package/dist/cjs/types/prisma-model-router-config.js.map +1 -0
  43. package/dist/cjs/utils/features/api.features.js +3 -2
  44. package/dist/cjs/utils/features/api.features.js.map +1 -1
  45. package/dist/cjs/utils/helpers/api.features.helpers.js +4 -3
  46. package/dist/cjs/utils/helpers/api.features.helpers.js.map +1 -1
  47. package/dist/cjs/utils/helpers/base.controller.helpers.js +77 -35
  48. package/dist/cjs/utils/helpers/base.controller.helpers.js.map +1 -1
  49. package/dist/cjs/utils/helpers/change-case.helpers.js +3 -3
  50. package/dist/cjs/utils/helpers/change-case.helpers.js.map +1 -1
  51. package/dist/cjs/utils/helpers/fs.helpers.js +14 -45
  52. package/dist/cjs/utils/helpers/fs.helpers.js.map +1 -1
  53. package/dist/cjs/utils/helpers/models.helpers.js +35 -30
  54. package/dist/cjs/utils/helpers/models.helpers.js.map +1 -1
  55. package/dist/cjs/utils/helpers/prisma.helpers.js +5 -3
  56. package/dist/cjs/utils/helpers/prisma.helpers.js.map +1 -1
  57. package/dist/cjs/utils/scripts/export-prisma-types.js +3 -3
  58. package/dist/cjs/utils/scripts/export-prisma-types.js.map +1 -1
  59. package/dist/cjs/utils/scripts/generate-insomnia-collection.js +228 -0
  60. package/dist/cjs/utils/scripts/generate-insomnia-collection.js.map +1 -0
  61. package/dist/cjs/utils/scripts/generate-zod-schemas.js +4 -3
  62. package/dist/cjs/utils/scripts/generate-zod-schemas.js.map +1 -1
  63. package/dist/cjs/utils/scripts/index.js +12 -0
  64. package/dist/cjs/utils/scripts/index.js.map +1 -0
  65. package/dist/es2020/app.js +1 -1
  66. package/dist/es2020/app.js.map +1 -1
  67. package/dist/es2020/exports/middlewares/index.js +2 -0
  68. package/dist/es2020/exports/middlewares/index.js.map +1 -0
  69. package/dist/es2020/exports/utils/index.js.map +1 -1
  70. package/dist/es2020/modules/auth/auth.controller.js +39 -38
  71. package/dist/es2020/modules/auth/auth.controller.js.map +1 -1
  72. package/dist/es2020/modules/auth/auth.router.js +1 -2
  73. package/dist/es2020/modules/auth/auth.router.js.map +1 -1
  74. package/dist/es2020/modules/auth/auth.service.js +27 -24
  75. package/dist/es2020/modules/auth/auth.service.js.map +1 -1
  76. package/dist/es2020/modules/auth/utils/helpers/auth.controller.helpers.js +8 -12
  77. package/dist/es2020/modules/auth/utils/helpers/auth.controller.helpers.js.map +1 -1
  78. package/dist/es2020/modules/auth/utils/helpers/auth.helpers.js +12 -0
  79. package/dist/es2020/modules/auth/utils/helpers/auth.helpers.js.map +1 -0
  80. package/dist/es2020/modules/base/base.controller.js +2 -29
  81. package/dist/es2020/modules/base/base.controller.js.map +1 -1
  82. package/dist/es2020/modules/base/base.middlewares.js +38 -1
  83. package/dist/es2020/modules/base/base.middlewares.js.map +1 -1
  84. package/dist/es2020/modules/base/base.router.js +2 -2
  85. package/dist/es2020/modules/base/base.router.js.map +1 -1
  86. package/dist/es2020/modules/base/utils/helpers/base.helpers.js +177 -0
  87. package/dist/es2020/modules/base/utils/helpers/base.helpers.js.map +1 -0
  88. package/dist/es2020/modules/base/utils/helpers/base.router.helpers.js +1 -2
  89. package/dist/es2020/modules/base/utils/helpers/base.router.helpers.js.map +1 -1
  90. package/dist/es2020/modules/base/utils/helpers/base.service.helpers.js +9 -11
  91. package/dist/es2020/modules/base/utils/helpers/base.service.helpers.js.map +1 -1
  92. package/dist/es2020/modules/error-handler/error-handler.controller.js +2 -0
  93. package/dist/es2020/modules/error-handler/error-handler.controller.js.map +1 -1
  94. package/dist/es2020/modules/error-handler/utils/catch-async.js +1 -1
  95. package/dist/es2020/modules/error-handler/utils/catch-async.js.map +1 -1
  96. package/dist/es2020/modules/file-uploader/file-uploader.service.js +4 -4
  97. package/dist/es2020/modules/file-uploader/file-uploader.service.js.map +1 -1
  98. package/dist/es2020/modules/file-uploader/utils/helpers/file-uploader.helpers.js +7 -5
  99. package/dist/es2020/modules/file-uploader/utils/helpers/file-uploader.helpers.js.map +1 -1
  100. package/dist/es2020/server.js +1 -1
  101. package/dist/es2020/server.js.map +1 -1
  102. package/dist/es2020/types/arkos-config.js.map +1 -1
  103. package/dist/es2020/types/auth.js.map +1 -1
  104. package/dist/es2020/types/index.js.map +1 -1
  105. package/dist/es2020/types/prisma-model-router-config.js +2 -0
  106. package/dist/es2020/types/prisma-model-router-config.js.map +1 -0
  107. package/dist/es2020/utils/features/api.features.js +3 -2
  108. package/dist/es2020/utils/features/api.features.js.map +1 -1
  109. package/dist/es2020/utils/helpers/api.features.helpers.js +4 -3
  110. package/dist/es2020/utils/helpers/api.features.helpers.js.map +1 -1
  111. package/dist/es2020/utils/helpers/base.controller.helpers.js +75 -31
  112. package/dist/es2020/utils/helpers/base.controller.helpers.js.map +1 -1
  113. package/dist/es2020/utils/helpers/change-case.helpers.js +3 -3
  114. package/dist/es2020/utils/helpers/change-case.helpers.js.map +1 -1
  115. package/dist/es2020/utils/helpers/fs.helpers.js +13 -44
  116. package/dist/es2020/utils/helpers/fs.helpers.js.map +1 -1
  117. package/dist/es2020/utils/helpers/models.helpers.js +36 -31
  118. package/dist/es2020/utils/helpers/models.helpers.js.map +1 -1
  119. package/dist/es2020/utils/helpers/prisma.helpers.js +6 -4
  120. package/dist/es2020/utils/helpers/prisma.helpers.js.map +1 -1
  121. package/dist/es2020/utils/scripts/export-prisma-types.js +3 -3
  122. package/dist/es2020/utils/scripts/export-prisma-types.js.map +1 -1
  123. package/dist/es2020/utils/scripts/generate-insomnia-collection.js +189 -0
  124. package/dist/es2020/utils/scripts/generate-insomnia-collection.js.map +1 -0
  125. package/dist/es2020/utils/scripts/generate-zod-schemas.js +4 -3
  126. package/dist/es2020/utils/scripts/generate-zod-schemas.js.map +1 -1
  127. package/dist/es2020/utils/scripts/index.js +10 -0
  128. package/dist/es2020/utils/scripts/index.js.map +1 -0
  129. package/dist/types/exports/middlewares/index.d.ts +1 -0
  130. package/dist/types/exports/utils/index.d.ts +1 -0
  131. package/dist/types/modules/auth/auth.service.d.ts +3 -3
  132. package/dist/types/modules/auth/utils/helpers/auth.helpers.d.ts +2 -0
  133. package/dist/types/modules/base/base.middlewares.d.ts +6 -1
  134. package/dist/types/modules/base/utils/helpers/base.helpers.d.ts +5 -0
  135. package/dist/types/modules/base/utils/helpers/base.service.helpers.d.ts +1 -1
  136. package/dist/types/types/arkos-config.d.ts +5 -0
  137. package/dist/types/types/auth.d.ts +9 -8
  138. package/dist/types/types/index.d.ts +2 -1
  139. package/dist/types/types/prisma-model-router-config.d.ts +18 -0
  140. package/dist/types/utils/helpers/base.controller.helpers.d.ts +4 -6
  141. package/dist/types/utils/helpers/fs.helpers.d.ts +2 -2
  142. package/dist/types/utils/scripts/generate-insomnia-collection.d.ts +1 -0
  143. package/dist/types/utils/scripts/index.d.ts +2 -0
  144. package/package.json +55 -34
@@ -25,9 +25,9 @@ function loadPrismaModule(a) {
25
25
  return __awaiter(this, void 0, void 0, function* () {
26
26
  if (!exports.prismaInstance) {
27
27
  try {
28
- let prismaPath = `${process.cwd()}/src/utils/prisma.${fs_helpers_1.userFileExtension}`;
28
+ let prismaPath = `${process.cwd()}/src/utils/prisma.${(0, fs_helpers_1.getUserFileExtension)()}`;
29
29
  if (!fs_1.default.existsSync(prismaPath)) {
30
- prismaPath = `${process.cwd()}/src/utils/prisma/index.${fs_helpers_1.userFileExtension}`;
30
+ prismaPath = `${process.cwd()}/src/utils/prisma/index.${(0, fs_helpers_1.getUserFileExtension)()}`;
31
31
  }
32
32
  const prismaModule = yield (0, global_helpers_1.importModule)(prismaPath);
33
33
  exports.prismaInstance = prismaModule.default || prismaModule.prisma;
@@ -35,7 +35,9 @@ function loadPrismaModule(a) {
35
35
  throw new Error("not found");
36
36
  }
37
37
  catch (error) {
38
- throw new app_error_1.default("Could not initialize Prisma module.", 500, { error });
38
+ throw new app_error_1.default("Could not initialize Prisma module.", 500, {
39
+ tip: `Make sure your prisma instance is exported under src/utils/prisma.${(0, fs_helpers_1.getUserFileExtension)()}, read more about Arkos' Project Structure under https://www.arkosjs.com/docs/project-structure#root-structure`,
40
+ });
39
41
  }
40
42
  }
41
43
  return exports.prismaInstance;
@@ -1 +1 @@
1
- {"version":3,"file":"prisma.helpers.js","sourceRoot":"","sources":["../../../../src/utils/helpers/prisma.helpers.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AASA,4CAmBC;AAED,8CAEC;AAhCD,4CAAoB;AAEpB,gGAAuE;AACvE,4FAAmE;AACnE,6CAAiD;AACjD,qDAAgD;AAErC,QAAA,cAAc,GAAQ,IAAI,CAAC;AAEtC,SAAsB,gBAAgB,CAAC,CAAU;;QAC/C,IAAI,CAAC,sBAAc,EAAE,CAAC;YACpB,IAAI,CAAC;gBACH,IAAI,UAAU,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,qBAAqB,8BAAiB,EAAE,CAAC;gBAE1E,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;oBAC/B,UAAU,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,2BAA2B,8BAAiB,EAAE,CAAC;gBAC9E,CAAC;gBAED,MAAM,YAAY,GAAG,MAAM,IAAA,6BAAY,EAAC,UAAU,CAAC,CAAC;gBACpD,sBAAc,GAAG,YAAY,CAAC,OAAO,IAAI,YAAY,CAAC,MAAM,CAAC;gBAE7D,IAAI,CAAC,sBAAc;oBAAE,MAAM,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC;YACpD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAEf,MAAM,IAAI,mBAAQ,CAAC,qCAAqC,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;YAC5E,CAAC;QACH,CAAC;QACD,OAAO,sBAAc,CAAC;IACxB,CAAC;CAAA;AAED,SAAgB,iBAAiB;IAC/B,OAAO,sBAAc,CAAC;AACxB,CAAC;AAEY,QAAA,uBAAuB,GAAG,IAAA,qBAAU,EAC/C,CAAO,GAAY,EAAE,GAAa,EAAE,IAAkB,EAAE,EAAE;IACxD,MAAM,MAAM,GAAG,MAAM,gBAAgB,EAAE,CAAC;IACxC,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,QAAQ,EAAE,CAAC;QACxB,IAAI,EAAE,CAAC;IACT,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,OAAO,CAAC,KAAK,CAAC,2BAA2B,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAC1D,IAAI,CAAC,IAAI,mBAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;IACzC,CAAC;AACH,CAAC,CAAA,CACF,CAAC","sourcesContent":["import fs from \"fs\";\nimport { Request, Response, NextFunction } from \"express\";\nimport catchAsync from \"../../modules/error-handler/utils/catch-async\";\nimport AppError from \"../../modules/error-handler/utils/app-error\";\nimport { userFileExtension } from \"./fs.helpers\";\nimport { importModule } from \"./global.helpers\";\n\nexport let prismaInstance: any = null;\n\nexport async function loadPrismaModule(a?: string) {\n if (!prismaInstance) {\n try {\n let prismaPath = `${process.cwd()}/src/utils/prisma.${userFileExtension}`;\n\n if (!fs.existsSync(prismaPath)) {\n prismaPath = `${process.cwd()}/src/utils/prisma/index.${userFileExtension}`;\n }\n\n const prismaModule = await importModule(prismaPath);\n prismaInstance = prismaModule.default || prismaModule.prisma;\n\n if (!prismaInstance) throw new Error(\"not found\");\n } catch (error) {\n // console.error(`Failed to load prisma.${userFileExtension}:`, error);\n throw new AppError(\"Could not initialize Prisma module.\", 500, { error });\n }\n }\n return prismaInstance;\n}\n\nexport function getPrismaInstance() {\n return prismaInstance;\n}\n\nexport const checkDatabaseConnection = catchAsync(\n async (req: Request, res: Response, next: NextFunction) => {\n const prisma = await loadPrismaModule();\n try {\n await prisma.$connect();\n next();\n } catch (error: any) {\n console.error(\"Database connection error\", error.message);\n next(new AppError(error.message, 503));\n }\n }\n);\n"]}
1
+ {"version":3,"file":"prisma.helpers.js","sourceRoot":"","sources":["../../../../src/utils/helpers/prisma.helpers.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AASA,4CAoBC;AAED,8CAEC;AAjCD,4CAAoB;AAEpB,gGAAuE;AACvE,4FAAmE;AACnE,6CAAoD;AACpD,qDAAgD;AAErC,QAAA,cAAc,GAAQ,IAAI,CAAC;AAEtC,SAAsB,gBAAgB,CAAC,CAAU;;QAC/C,IAAI,CAAC,sBAAc,EAAE,CAAC;YACpB,IAAI,CAAC;gBACH,IAAI,UAAU,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,qBAAqB,IAAA,iCAAoB,GAAE,EAAE,CAAC;gBAE/E,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;oBAC/B,UAAU,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,2BAA2B,IAAA,iCAAoB,GAAE,EAAE,CAAC;gBACnF,CAAC;gBAED,MAAM,YAAY,GAAG,MAAM,IAAA,6BAAY,EAAC,UAAU,CAAC,CAAC;gBACpD,sBAAc,GAAG,YAAY,CAAC,OAAO,IAAI,YAAY,CAAC,MAAM,CAAC;gBAE7D,IAAI,CAAC,sBAAc;oBAAE,MAAM,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC;YACpD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,IAAI,mBAAQ,CAAC,qCAAqC,EAAE,GAAG,EAAE;oBAC7D,GAAG,EAAE,qEAAqE,IAAA,iCAAoB,GAAE,gHAAgH;iBACjN,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QACD,OAAO,sBAAc,CAAC;IACxB,CAAC;CAAA;AAED,SAAgB,iBAAiB;IAC/B,OAAO,sBAAc,CAAC;AACxB,CAAC;AAEY,QAAA,uBAAuB,GAAG,IAAA,qBAAU,EAC/C,CAAO,GAAY,EAAE,GAAa,EAAE,IAAkB,EAAE,EAAE;IACxD,MAAM,MAAM,GAAG,MAAM,gBAAgB,EAAE,CAAC;IACxC,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,QAAQ,EAAE,CAAC;QACxB,IAAI,EAAE,CAAC;IACT,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,OAAO,CAAC,KAAK,CAAC,2BAA2B,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAC1D,IAAI,CAAC,IAAI,mBAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;IACzC,CAAC;AACH,CAAC,CAAA,CACF,CAAC","sourcesContent":["import fs from \"fs\";\nimport { Request, Response, NextFunction } from \"express\";\nimport catchAsync from \"../../modules/error-handler/utils/catch-async\";\nimport AppError from \"../../modules/error-handler/utils/app-error\";\nimport { getUserFileExtension } from \"./fs.helpers\";\nimport { importModule } from \"./global.helpers\";\n\nexport let prismaInstance: any = null;\n\nexport async function loadPrismaModule(a?: string) {\n if (!prismaInstance) {\n try {\n let prismaPath = `${process.cwd()}/src/utils/prisma.${getUserFileExtension()}`;\n\n if (!fs.existsSync(prismaPath)) {\n prismaPath = `${process.cwd()}/src/utils/prisma/index.${getUserFileExtension()}`;\n }\n\n const prismaModule = await importModule(prismaPath);\n prismaInstance = prismaModule.default || prismaModule.prisma;\n\n if (!prismaInstance) throw new Error(\"not found\");\n } catch (error) {\n throw new AppError(\"Could not initialize Prisma module.\", 500, {\n tip: `Make sure your prisma instance is exported under src/utils/prisma.${getUserFileExtension()}, read more about Arkos' Project Structure under https://www.arkosjs.com/docs/project-structure#root-structure`,\n });\n }\n }\n return prismaInstance;\n}\n\nexport function getPrismaInstance() {\n return prismaInstance;\n}\n\nexport const checkDatabaseConnection = catchAsync(\n async (req: Request, res: Response, next: NextFunction) => {\n const prisma = await loadPrismaModule();\n try {\n await prisma.$connect();\n next();\n } catch (error: any) {\n console.error(\"Database connection error\", error.message);\n next(new AppError(error.message, 503));\n }\n }\n);\n"]}
@@ -62,8 +62,8 @@ function isFieldDefinition(line) {
62
62
  }
63
63
  function parseFieldType(fieldType, line) {
64
64
  const baseType = fieldType.replace("?", "").replace("[]", "");
65
- const isArray = fieldType.includes("[]");
66
- if (line.includes("@relation")) {
65
+ const isArray = fieldType === null || fieldType === void 0 ? void 0 : fieldType.includes("[]");
66
+ if (line === null || line === void 0 ? void 0 : line.includes("@relation")) {
67
67
  return isArray ? `${baseType}[]` : baseType;
68
68
  }
69
69
  let tsType = baseType;
@@ -124,7 +124,7 @@ function generateTypes() {
124
124
  const parts = line.trim().split(/\s+/);
125
125
  const fieldName = parts[0];
126
126
  const fieldType = parts[1];
127
- const isOptional = line.includes("?");
127
+ const isOptional = line === null || line === void 0 ? void 0 : line.includes("?");
128
128
  const parsedType = parseFieldType(fieldType, line);
129
129
  typeDefinitions += ` ${fieldName}${isOptional ? "?" : ""}: ${parsedType};\n`;
130
130
  }
@@ -1 +1 @@
1
- {"version":3,"file":"export-prisma-types.js","sourceRoot":"","sources":["../../../../src/utils/scripts/export-prisma-types.ts"],"names":[],"mappings":"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","sourcesContent":["import * as fs from \"fs\";\nimport * as path from \"path\";\n\nconst SCHEMA_FOLDER_PATH = \"./prisma/schema\";\n\nfunction getAllSchemaContent(): string {\n const files = fs\n .readdirSync(SCHEMA_FOLDER_PATH)\n .filter((file) => file.endsWith(\".prisma\"));\n\n let combinedSchema = \"\";\n for (const file of files) {\n const filePath = path.join(SCHEMA_FOLDER_PATH, file);\n const content = fs.readFileSync(filePath, \"utf-8\");\n combinedSchema += \"\\n\" + content;\n }\n\n return combinedSchema;\n}\n\nfunction isFieldDefinition(line: string): boolean {\n // Ignore lines that start with @@ (model attributes)\n if (line.trim().startsWith(\"@@\")) return false;\n\n // Ignore empty lines and comments\n if (!line.trim() || line.trim().startsWith(\"//\")) return false;\n\n // Must start with a valid field name (letter or underscore)\n if (!/^\\s*[a-zA-Z_]\\w*\\s/.test(line)) return false;\n\n // Must have at least a name and type\n const parts = line.trim().split(/\\s+/);\n if (parts.length < 2) return false;\n\n return true;\n}\n\nfunction parseFieldType(fieldType: string, line: string): string {\n // Remove any ? or [] from the type for the switch\n const baseType = fieldType.replace(\"?\", \"\").replace(\"[]\", \"\");\n const isArray = fieldType.includes(\"[]\");\n\n // If it's a relation (has @relation), keep the original type\n if (line.includes(\"@relation\")) {\n return isArray ? `${baseType}[]` : baseType;\n }\n\n // Convert Prisma scalar types to TypeScript types\n let tsType = baseType;\n switch (baseType) {\n case \"String\":\n tsType = \"string\";\n break;\n case \"Int\":\n case \"Float\":\n case \"Decimal\":\n tsType = \"number\";\n break;\n case \"Boolean\":\n tsType = \"boolean\";\n break;\n case \"DateTime\":\n tsType = \"Date\";\n break;\n case \"Json\":\n tsType = \"any\";\n break;\n case \"BigInt\":\n tsType = \"bigint\";\n break;\n case \"Bytes\":\n tsType = \"Buffer\";\n break;\n }\n\n return isArray ? `${tsType}[]` : tsType;\n}\n\nfunction generateTypes() {\n const schemaContent = getAllSchemaContent();\n\n let typeDefinitions = `// Auto-generated types from Prisma Schema\\n\\n`;\n\n // Generate enum types\n const enumRegex = /enum\\s+(\\w+)\\s*{([^}]*)}/g;\n let enumMatch;\n while ((enumMatch = enumRegex.exec(schemaContent)) !== null) {\n const [_, enumName, enumContent] = enumMatch;\n const values = enumContent\n .trim()\n .split(\"\\n\")\n .map((line) => line.trim())\n .filter(Boolean);\n\n typeDefinitions += `export enum ${enumName} {\\n`;\n values.forEach((value) => {\n typeDefinitions += ` ${value} = \"${value}\",\\n`;\n });\n typeDefinitions += `}\\n\\n`;\n }\n\n // Generate interface types\n const modelRegex = /model\\s+(\\w+)\\s*{([^}]*)}/g;\n let modelMatch;\n while ((modelMatch = modelRegex.exec(schemaContent)) !== null) {\n const [_, modelName, modelContent] = modelMatch;\n\n typeDefinitions += `export interface ${modelName} {\\n`;\n\n const lines = modelContent.split(\"\\n\");\n for (const line of lines) {\n if (!isFieldDefinition(line)) continue;\n\n const parts = line.trim().split(/\\s+/);\n const fieldName = parts[0];\n const fieldType = parts[1];\n\n const isOptional = line.includes(\"?\");\n const parsedType = parseFieldType(fieldType, line);\n\n typeDefinitions += ` ${fieldName}${\n isOptional ? \"?\" : \"\"\n }: ${parsedType};\\n`;\n }\n\n typeDefinitions += `}\\n\\n`;\n }\n\n const outputDir = path.join(process.cwd(), \".cache/types\");\n if (!fs.existsSync(outputDir)) {\n fs.mkdirSync(outputDir, { recursive: true });\n }\n\n const outputPath = path.join(outputDir, \"prisma.ts\");\n fs.writeFileSync(outputPath, typeDefinitions);\n console.info(\"Types generated successfully at:\", outputPath);\n}\n\n// Run the type generator\ngenerateTypes();\n"]}
1
+ {"version":3,"file":"export-prisma-types.js","sourceRoot":"","sources":["../../../../src/utils/scripts/export-prisma-types.ts"],"names":[],"mappings":"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","sourcesContent":["import * as fs from \"fs\";\nimport * as path from \"path\";\n\nconst SCHEMA_FOLDER_PATH = \"./prisma/schema\";\n\nfunction getAllSchemaContent(): string {\n const files = fs\n .readdirSync(SCHEMA_FOLDER_PATH)\n .filter((file) => file.endsWith(\".prisma\"));\n\n let combinedSchema = \"\";\n for (const file of files) {\n const filePath = path.join(SCHEMA_FOLDER_PATH, file);\n const content = fs.readFileSync(filePath, \"utf-8\");\n combinedSchema += \"\\n\" + content;\n }\n\n return combinedSchema;\n}\n\nfunction isFieldDefinition(line: string): boolean {\n // Ignore lines that start with @@ (model attributes)\n if (line.trim().startsWith(\"@@\")) return false;\n\n // Ignore empty lines and comments\n if (!line.trim() || line.trim().startsWith(\"//\")) return false;\n\n // Must start with a valid field name (letter or underscore)\n if (!/^\\s*[a-zA-Z_]\\w*\\s/.test(line)) return false;\n\n // Must have at least a name and type\n const parts = line.trim().split(/\\s+/);\n if (parts.length < 2) return false;\n\n return true;\n}\n\nfunction parseFieldType(fieldType: string, line: string): string {\n // Remove any ? or [] from the type for the switch\n const baseType = fieldType.replace(\"?\", \"\").replace(\"[]\", \"\");\n const isArray = fieldType?.includes(\"[]\");\n\n // If it's a relation (has @relation), keep the original type\n if (line?.includes(\"@relation\")) {\n return isArray ? `${baseType}[]` : baseType;\n }\n\n // Convert Prisma scalar types to TypeScript types\n let tsType = baseType;\n switch (baseType) {\n case \"String\":\n tsType = \"string\";\n break;\n case \"Int\":\n case \"Float\":\n case \"Decimal\":\n tsType = \"number\";\n break;\n case \"Boolean\":\n tsType = \"boolean\";\n break;\n case \"DateTime\":\n tsType = \"Date\";\n break;\n case \"Json\":\n tsType = \"any\";\n break;\n case \"BigInt\":\n tsType = \"bigint\";\n break;\n case \"Bytes\":\n tsType = \"Buffer\";\n break;\n }\n\n return isArray ? `${tsType}[]` : tsType;\n}\n\nfunction generateTypes() {\n const schemaContent = getAllSchemaContent();\n\n let typeDefinitions = `// Auto-generated types from Prisma Schema\\n\\n`;\n\n // Generate enum types\n const enumRegex = /enum\\s+(\\w+)\\s*{([^}]*)}/g;\n let enumMatch;\n while ((enumMatch = enumRegex.exec(schemaContent)) !== null) {\n const [_, enumName, enumContent] = enumMatch;\n const values = enumContent\n .trim()\n .split(\"\\n\")\n .map((line) => line.trim())\n .filter(Boolean);\n\n typeDefinitions += `export enum ${enumName} {\\n`;\n values.forEach((value) => {\n typeDefinitions += ` ${value} = \"${value}\",\\n`;\n });\n typeDefinitions += `}\\n\\n`;\n }\n\n // Generate interface types\n const modelRegex = /model\\s+(\\w+)\\s*{([^}]*)}/g;\n let modelMatch;\n while ((modelMatch = modelRegex.exec(schemaContent)) !== null) {\n const [_, modelName, modelContent] = modelMatch;\n\n typeDefinitions += `export interface ${modelName} {\\n`;\n\n const lines = modelContent.split(\"\\n\");\n for (const line of lines) {\n if (!isFieldDefinition(line)) continue;\n\n const parts = line.trim().split(/\\s+/);\n const fieldName = parts[0];\n const fieldType = parts[1];\n\n const isOptional = line?.includes(\"?\");\n const parsedType = parseFieldType(fieldType, line);\n\n typeDefinitions += ` ${fieldName}${\n isOptional ? \"?\" : \"\"\n }: ${parsedType};\\n`;\n }\n\n typeDefinitions += `}\\n\\n`;\n }\n\n const outputDir = path.join(process.cwd(), \".cache/types\");\n if (!fs.existsSync(outputDir)) {\n fs.mkdirSync(outputDir, { recursive: true });\n }\n\n const outputPath = path.join(outputDir, \"prisma.ts\");\n fs.writeFileSync(outputPath, typeDefinitions);\n console.info(\"Types generated successfully at:\", outputPath);\n}\n\n// Run the type generator\ngenerateTypes();\n"]}
@@ -0,0 +1,228 @@
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 __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
36
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
37
+ return new (P || (P = Promise))(function (resolve, reject) {
38
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
39
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
40
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
41
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
42
+ });
43
+ };
44
+ var __importDefault = (this && this.__importDefault) || function (mod) {
45
+ return (mod && mod.__esModule) ? mod : { "default": mod };
46
+ };
47
+ Object.defineProperty(exports, "__esModule", { value: true });
48
+ exports.writeInsomniaCollectionJson = writeInsomniaCollectionJson;
49
+ const change_case_helpers_1 = require("../helpers/change-case.helpers");
50
+ const fs_1 = __importDefault(require("fs"));
51
+ const path_1 = __importDefault(require("path"));
52
+ const pluralize_1 = __importDefault(require("pluralize"));
53
+ const base_controller_helpers_1 = require("../helpers/base.controller.helpers");
54
+ function generateInsomniaCollection() {
55
+ const routes = (0, base_controller_helpers_1.getAppRoutes)();
56
+ const resourceTypes = [
57
+ ...new Set(routes.map((route) => route.path.split("/")[1] || "root")),
58
+ ];
59
+ const collection = {
60
+ _type: "export",
61
+ __export_format: 4,
62
+ __export_date: new Date().toISOString(),
63
+ __export_source: "script-generated",
64
+ resources: [],
65
+ };
66
+ collection.resources.push({
67
+ _id: "wrk_arkos",
68
+ parentId: null,
69
+ modified: new Date().toISOString(),
70
+ created: new Date().toISOString(),
71
+ name: "Project API",
72
+ description: "Automatically generated Arkos API collection",
73
+ _type: "workspace",
74
+ });
75
+ const routesByResource = resourceTypes.reduce((acc, resourceType) => {
76
+ if (resourceType === "root")
77
+ return acc;
78
+ acc[resourceType] = {
79
+ findMany: routes.find((r) => r.method === "GET" && r.path === `/${resourceType}`),
80
+ findOne: routes.find((r) => r.method === "GET" && r.path === `/${resourceType}/:id`),
81
+ createOne: routes.find((r) => r.method === "POST" && r.path === `/${resourceType}`),
82
+ createMany: routes.find((r) => r.method === "POST" && r.path === `/${resourceType}/many`),
83
+ updateOne: routes.find((r) => r.method === "PATCH" && r.path === `/${resourceType}/:id`),
84
+ updateMany: routes.find((r) => r.method === "PATCH" && r.path === `/${resourceType}/many`),
85
+ deleteOne: routes.find((r) => r.method === "DELETE" && r.path === `/${resourceType}/:id`),
86
+ deleteMany: routes.find((r) => r.method === "DELETE" && r.path === `/${resourceType}/many`),
87
+ };
88
+ return acc;
89
+ }, {});
90
+ Object.entries(routesByResource).forEach(([resourceType, resourceRoutes], index) => {
91
+ const folderId = `fld_${resourceType}`;
92
+ collection.resources.push({
93
+ _id: folderId,
94
+ parentId: "wrk_arkos",
95
+ modified: new Date().toISOString(),
96
+ created: new Date().toISOString(),
97
+ name: resourceType
98
+ .replace(/-/g, " ")
99
+ .replace(/\b\w/g, (l) => l.toUpperCase()),
100
+ description: `${resourceType
101
+ .replace(/-/g, " ")
102
+ .replace(/\b\w/g, (l) => l.toUpperCase())} endpoints`,
103
+ environment: {},
104
+ environmentPropertyOrder: null,
105
+ metaSortKey: -1000 + index * 100,
106
+ _type: "request_group",
107
+ });
108
+ const methodMappings = [
109
+ { key: "findMany", name: "Find Many", method: "GET" },
110
+ { key: "findOne", name: "Find One", method: "GET" },
111
+ { key: "createOne", name: "Create One", method: "POST" },
112
+ { key: "createMany", name: "Create Many", method: "POST" },
113
+ { key: "updateOne", name: "Update One", method: "PATCH" },
114
+ { key: "updateMany", name: "Update Many", method: "PATCH" },
115
+ { key: "deleteOne", name: "Delete One", method: "DELETE" },
116
+ { key: "deleteMany", name: "Delete Many", method: "DELETE" },
117
+ ];
118
+ methodMappings.forEach((mapping, routeIndex) => __awaiter(this, void 0, void 0, function* () {
119
+ const route = resourceRoutes[mapping.key];
120
+ if (!route)
121
+ return;
122
+ const modelName = (0, change_case_helpers_1.kebabCase)(pluralize_1.default.singular(mapping.key));
123
+ const reqId = `req_${resourceType}_${mapping.key}`;
124
+ const dtoPath = path_1.default.join(process.cwd(), `src/modules/${modelName}/dtos`);
125
+ const dotMapping = {
126
+ createOne: `create-${modelName}.dto.ts`,
127
+ updateOne: `create-${modelName}.dto.ts`,
128
+ };
129
+ const dto = yield Promise.resolve(`${path_1.default.join(dtoPath, dotMapping[mapping.key])}`).then(s => __importStar(require(s)));
130
+ collection.resources.push({
131
+ _id: reqId,
132
+ parentId: folderId,
133
+ modified: new Date().toISOString(),
134
+ created: new Date().toISOString(),
135
+ url: `{{BASE_URL}}/${route.path}`,
136
+ name: mapping.name,
137
+ description: `${mapping.method} request for ${route.path}`,
138
+ method: route.method,
139
+ body: route.method !== "GET"
140
+ ? {
141
+ mimeType: "application/json",
142
+ text: route.method === "POST" || route.method === "PATCH"
143
+ ? route.path.includes("/many")
144
+ ? "[{}]"
145
+ : "{}"
146
+ : "[]",
147
+ }
148
+ : {},
149
+ parameters: route.path.includes(":")
150
+ ? route.path
151
+ .split("/")
152
+ .filter((p) => p.startsWith(":"))
153
+ .map((param) => ({
154
+ id: `par_${param.slice(1)}`,
155
+ name: param.slice(1),
156
+ value: "",
157
+ description: `${param.slice(1)} parameter`,
158
+ disabled: false,
159
+ }))
160
+ : [],
161
+ headers: route.method !== "GET"
162
+ ? [
163
+ {
164
+ name: "Content-Type",
165
+ value: "application/json",
166
+ },
167
+ ]
168
+ : [],
169
+ authentication: {},
170
+ metaSortKey: -1000 + routeIndex * 10,
171
+ isPrivate: false,
172
+ settingStoreCookies: true,
173
+ settingSendCookies: true,
174
+ settingDisableRenderRequestBody: false,
175
+ settingEncodeUrl: true,
176
+ settingRebuildPath: true,
177
+ settingFollowRedirects: "global",
178
+ _type: "request",
179
+ });
180
+ }));
181
+ });
182
+ const rootFolderId = "fld_root";
183
+ collection.resources.push({
184
+ _id: rootFolderId,
185
+ parentId: "wrk_arkos",
186
+ modified: new Date().toISOString(),
187
+ created: new Date().toISOString(),
188
+ name: "Root",
189
+ description: "Root API endpoints",
190
+ environment: {},
191
+ environmentPropertyOrder: null,
192
+ metaSortKey: -100,
193
+ _type: "request_group",
194
+ });
195
+ const rootRoutes = routes.filter((route) => route.path === "/api" || route.path === "/available-routes");
196
+ rootRoutes.forEach((route, index) => {
197
+ collection.resources.push({
198
+ _id: `req_root_${route.path.slice(1)}`,
199
+ parentId: rootFolderId,
200
+ modified: new Date().toISOString(),
201
+ created: new Date().toISOString(),
202
+ url: `{{BASE_URL}}/${route.path}`,
203
+ name: route.path === "/api" ? "Welcome" : "Available Routes",
204
+ description: `${route.method} request for ${route.path}`,
205
+ method: route.method,
206
+ body: {},
207
+ parameters: [],
208
+ headers: [],
209
+ authentication: {},
210
+ metaSortKey: -1000 + index * 10,
211
+ isPrivate: false,
212
+ settingStoreCookies: true,
213
+ settingSendCookies: true,
214
+ settingDisableRenderRequestBody: false,
215
+ settingEncodeUrl: true,
216
+ settingRebuildPath: true,
217
+ settingFollowRedirects: "global",
218
+ _type: "request",
219
+ });
220
+ });
221
+ return collection;
222
+ }
223
+ function writeInsomniaCollectionJson() {
224
+ const insomniaCollection = generateInsomniaCollection();
225
+ fs_1.default.writeFileSync(path_1.default.join(process.cwd(), ".cache", "insomnia-collection.json"), JSON.stringify(insomniaCollection, null, 2));
226
+ console.log("Insomnia collection generated successfully! .cache/insomnia-collection.json");
227
+ }
228
+ //# sourceMappingURL=generate-insomnia-collection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-insomnia-collection.js","sourceRoot":"","sources":["../../../../src/utils/scripts/generate-insomnia-collection.ts"],"names":[],"mappings":"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","sourcesContent":["// import { kebabCase } from \"change-case\";\nimport { kebabCase } from \"../helpers/change-case.helpers\";\nimport fs from \"fs\";\nimport path from \"path\";\nimport pluralize from \"pluralize\";\n// import DtoParser from \"./dto-parser\";\nimport { getAppRoutes } from \"../helpers/base.controller.helpers\";\n\n// Define types for the routes and collection\ninterface Route {\n method: string;\n path: string;\n}\n\ninterface InsomniaResource {\n _id: string;\n parentId: string | null;\n modified: string;\n created: string;\n name: string;\n description?: string;\n _type: string;\n url?: string;\n method?: string;\n body?: {\n mimeType?: string;\n text?: string;\n };\n parameters?: Array<{\n id: string;\n name: string;\n value: string;\n description: string;\n disabled: boolean;\n }>;\n headers?: Array<{\n name: string;\n value: string;\n }>;\n authentication?: Record<string, unknown>;\n metaSortKey?: number;\n environment?: Record<string, unknown>;\n environmentPropertyOrder?: null;\n isPrivate?: boolean;\n settingStoreCookies?: boolean;\n settingSendCookies?: boolean;\n settingDisableRenderRequestBody?: boolean;\n settingEncodeUrl?: boolean;\n settingRebuildPath?: boolean;\n settingFollowRedirects?: string;\n}\n\ninterface InsomniaCollection {\n _type: string;\n __export_format: number;\n __export_date: string;\n __export_source: string;\n resources: InsomniaResource[];\n}\n\ninterface ResourceRoutes {\n findMany?: Route;\n findOne?: Route;\n createOne?: Route;\n createMany?: Route;\n updateOne?: Route;\n updateMany?: Route;\n deleteOne?: Route;\n deleteMany?: Route;\n}\n\nfunction generateInsomniaCollection(): InsomniaCollection {\n const routes = getAppRoutes();\n\n // Unique resource types\n const resourceTypes: string[] = [\n ...new Set(routes.map((route) => route.path.split(\"/\")[1] || \"root\")),\n ];\n\n // Base collection structure\n const collection: InsomniaCollection = {\n _type: \"export\",\n __export_format: 4,\n __export_date: new Date().toISOString(),\n __export_source: \"script-generated\",\n resources: [],\n };\n\n // Add workspace\n collection.resources.push({\n _id: \"wrk_arkos\",\n parentId: null,\n modified: new Date().toISOString(),\n created: new Date().toISOString(),\n name: \"Project API\",\n description: \"Automatically generated Arkos API collection\",\n _type: \"workspace\",\n });\n\n // Group routes by resource type\n const routesByResource: Record<string, ResourceRoutes> = resourceTypes.reduce(\n (acc, resourceType) => {\n if (resourceType === \"root\") return acc;\n\n acc[resourceType] = {\n findMany: routes.find(\n (r) => r.method === \"GET\" && r.path === `/${resourceType}`\n ),\n findOne: routes.find(\n (r) => r.method === \"GET\" && r.path === `/${resourceType}/:id`\n ),\n createOne: routes.find(\n (r) => r.method === \"POST\" && r.path === `/${resourceType}`\n ),\n createMany: routes.find(\n (r) => r.method === \"POST\" && r.path === `/${resourceType}/many`\n ),\n updateOne: routes.find(\n (r) => r.method === \"PATCH\" && r.path === `/${resourceType}/:id`\n ),\n updateMany: routes.find(\n (r) => r.method === \"PATCH\" && r.path === `/${resourceType}/many`\n ),\n deleteOne: routes.find(\n (r) => r.method === \"DELETE\" && r.path === `/${resourceType}/:id`\n ),\n deleteMany: routes.find(\n (r) => r.method === \"DELETE\" && r.path === `/${resourceType}/many`\n ),\n };\n\n return acc;\n },\n {} as Record<string, any>\n );\n\n // Create folders and requests for each resource type\n Object.entries(routesByResource).forEach(\n ([resourceType, resourceRoutes], index) => {\n // Main resource folder\n const folderId = `fld_${resourceType}`;\n collection.resources.push({\n _id: folderId,\n parentId: \"wrk_arkos\",\n modified: new Date().toISOString(),\n created: new Date().toISOString(),\n name: resourceType\n .replace(/-/g, \" \")\n .replace(/\\b\\w/g, (l) => l.toUpperCase()),\n description: `${resourceType\n .replace(/-/g, \" \")\n .replace(/\\b\\w/g, (l) => l.toUpperCase())} endpoints`,\n environment: {},\n environmentPropertyOrder: null,\n metaSortKey: -1000 + index * 100,\n _type: \"request_group\",\n });\n\n // Create specific method requests\n const methodMappings = [\n { key: \"findMany\", name: \"Find Many\", method: \"GET\" },\n { key: \"findOne\", name: \"Find One\", method: \"GET\" },\n { key: \"createOne\", name: \"Create One\", method: \"POST\" },\n { key: \"createMany\", name: \"Create Many\", method: \"POST\" },\n { key: \"updateOne\", name: \"Update One\", method: \"PATCH\" },\n { key: \"updateMany\", name: \"Update Many\", method: \"PATCH\" },\n { key: \"deleteOne\", name: \"Delete One\", method: \"DELETE\" },\n { key: \"deleteMany\", name: \"Delete Many\", method: \"DELETE\" },\n ];\n\n methodMappings.forEach(async (mapping, routeIndex) => {\n const route = resourceRoutes[mapping.key as keyof ResourceRoutes];\n if (!route) return;\n\n const modelName = kebabCase(pluralize.singular(mapping.key));\n const reqId = `req_${resourceType}_${mapping.key}`;\n const dtoPath = path.join(\n process.cwd(),\n `src/modules/${modelName}/dtos`\n );\n\n const dotMapping: Record<string, string> = {\n createOne: `create-${modelName}.dto.ts`,\n updateOne: `create-${modelName}.dto.ts`,\n };\n\n const dto = await import(path.join(dtoPath, dotMapping[mapping.key]));\n\n collection.resources.push({\n _id: reqId,\n parentId: folderId,\n modified: new Date().toISOString(),\n created: new Date().toISOString(),\n url: `{{BASE_URL}}/${route.path}`,\n name: mapping.name,\n description: `${mapping.method} request for ${route.path}`,\n method: route.method,\n body:\n route.method !== \"GET\"\n ? {\n mimeType: \"application/json\",\n text:\n route.method === \"POST\" || route.method === \"PATCH\"\n ? route.path.includes(\"/many\")\n ? \"[{}]\" // array for many\n : \"{}\" // object for single\n : \"[]\", // array for delete\n }\n : {},\n parameters: route.path.includes(\":\")\n ? route.path\n .split(\"/\")\n .filter((p) => p.startsWith(\":\"))\n .map((param) => ({\n id: `par_${param.slice(1)}`,\n name: param.slice(1),\n value: \"\",\n description: `${param.slice(1)} parameter`,\n disabled: false,\n }))\n : [],\n headers:\n route.method !== \"GET\"\n ? [\n {\n name: \"Content-Type\",\n value: \"application/json\",\n },\n ]\n : [],\n authentication: {},\n metaSortKey: -1000 + routeIndex * 10,\n isPrivate: false,\n settingStoreCookies: true,\n settingSendCookies: true,\n settingDisableRenderRequestBody: false,\n settingEncodeUrl: true,\n settingRebuildPath: true,\n settingFollowRedirects: \"global\",\n _type: \"request\",\n });\n });\n }\n );\n\n // Add root routes (api, available-routes)\n const rootFolderId = \"fld_root\";\n collection.resources.push({\n _id: rootFolderId,\n parentId: \"wrk_arkos\",\n modified: new Date().toISOString(),\n created: new Date().toISOString(),\n name: \"Root\",\n description: \"Root API endpoints\",\n environment: {},\n environmentPropertyOrder: null,\n metaSortKey: -100,\n _type: \"request_group\",\n });\n\n const rootRoutes = routes.filter(\n (route) => route.path === \"/api\" || route.path === \"/available-routes\"\n );\n rootRoutes.forEach((route, index) => {\n collection.resources.push({\n _id: `req_root_${route.path.slice(1)}`,\n parentId: rootFolderId,\n modified: new Date().toISOString(),\n created: new Date().toISOString(),\n url: `{{BASE_URL}}/${route.path}`,\n name: route.path === \"/api\" ? \"Welcome\" : \"Available Routes\",\n description: `${route.method} request for ${route.path}`,\n method: route.method,\n body: {},\n parameters: [],\n headers: [],\n authentication: {},\n metaSortKey: -1000 + index * 10,\n isPrivate: false,\n settingStoreCookies: true,\n settingSendCookies: true,\n settingDisableRenderRequestBody: false,\n settingEncodeUrl: true,\n settingRebuildPath: true,\n settingFollowRedirects: \"global\",\n _type: \"request\",\n });\n });\n\n return collection;\n}\n\n// Example usage\nexport function writeInsomniaCollectionJson() {\n // Generate the collection\n // const dtoParser = new DtoParser(\"./src/modules\");\n // const dtoBodies = dtoParser.parseAllDtos();\n\n const insomniaCollection = generateInsomniaCollection();\n\n // Write to file\n fs.writeFileSync(\n path.join(process.cwd(), \".cache\", \"insomnia-collection.json\"),\n JSON.stringify(insomniaCollection, null, 2)\n );\n\n console.log(\n \"Insomnia collection generated successfully! .cache/insomnia-collection.json\"\n );\n}\n"]}
@@ -29,7 +29,7 @@ function generateZodSchemas(inputContent) {
29
29
  function typeToZodSchema(type, isOptional = false) {
30
30
  type = type.trim();
31
31
  const baseSchema = (() => {
32
- if (type.includes("Date")) {
32
+ if (type === null || type === void 0 ? void 0 : type.includes("Date")) {
33
33
  return `z.date().or(z.string()).refine((val) => val instanceof Date || !isNaN(Date.parse(val)), "Data inválida")`;
34
34
  }
35
35
  switch (type) {
@@ -42,7 +42,7 @@ function generateZodSchemas(inputContent) {
42
42
  case "any":
43
43
  return "z.any()";
44
44
  default:
45
- if (type.includes("[]")) {
45
+ if (type === null || type === void 0 ? void 0 : type.includes("[]")) {
46
46
  const arrayType = type.replace("[]", "");
47
47
  switch (arrayType) {
48
48
  case "string":
@@ -79,8 +79,9 @@ function generateZodSchemas(inputContent) {
79
79
  .map((line) => line.trim())
80
80
  .filter((line) => line)
81
81
  .map((line) => {
82
+ var _a;
82
83
  const [propName, type] = line.split(":").map((part) => part.trim());
83
- if (["createdAt", "updatedAt", "deletedAt"].includes(propName.replace("?", ""))) {
84
+ if ((_a = ["createdAt", "updatedAt", "deletedAt"]) === null || _a === void 0 ? void 0 : _a.includes(propName.replace("?", ""))) {
84
85
  return null;
85
86
  }
86
87
  const isOptional = propName.endsWith("?");
@@ -1 +1 @@
1
- {"version":3,"file":"generate-zod-schemas.js","sourceRoot":"","sources":["../../../../src/utils/scripts/generate-zod-schemas.ts"],"names":[],"mappings":"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","sourcesContent":["import fs from \"fs/promises\";\nimport path from \"path\";\n\nasync function generateZodSchemas(inputContent: string): Promise<any> {\n let output = `import { z } from \"zod\";\\n\\n`;\n\n // Extract enum names first to help identify enum types later\n const enumNames = new Set();\n const enumRegex = /export enum (\\w+) {([^}]+)}/g;\n let enumMatch;\n while ((enumMatch = enumRegex.exec(inputContent)) !== null) {\n const enumName = enumMatch[1];\n const enumValues = enumMatch[2];\n enumNames.add(enumName);\n\n // Keep original enum definition\n output += `export enum ${enumName} {\\n${enumValues}\\n}\\n\\n`;\n }\n\n // Helper function to convert type to zod schema\n function typeToZodSchema(type: string, isOptional: boolean = false): string {\n type = type.trim();\n const baseSchema = (() => {\n if (type.includes(\"Date\")) {\n return `z.date().or(z.string()).refine((val) => val instanceof Date || !isNaN(Date.parse(val)), \"Data inválida\")`;\n }\n switch (type) {\n case \"string\":\n return \"z.string()\";\n case \"number\":\n return \"z.number()\";\n case \"boolean\":\n return \"z.boolean()\";\n case \"any\":\n return \"z.any()\";\n default:\n // Handle arrays\n if (type.includes(\"[]\")) {\n const arrayType = type.replace(\"[]\", \"\");\n // Handle primitive types in arrays\n switch (arrayType) {\n case \"string\":\n return \"z.array(z.string())\";\n case \"number\":\n return \"z.array(z.number())\";\n case \"boolean\":\n return \"z.array(z.boolean())\";\n default:\n // Check if it's an enum type\n if (enumNames.has(arrayType)) {\n return `z.array(z.nativeEnum(${arrayType}))`;\n }\n // Otherwise it's a relation/model type\n return `z.array(${arrayType}Schema)`;\n }\n }\n // Handle single types\n if (type.match(/^[A-Z]/)) {\n // Check if it's an enum type\n if (enumNames.has(type)) {\n return `z.nativeEnum(${type})`;\n }\n // Otherwise it's a relation/model type\n return `${type}Schema`;\n }\n return \"z.any()\";\n }\n })();\n\n return isOptional ? `${baseSchema}.optional()` : baseSchema;\n }\n\n // Extract and generate interface schemas\n const interfaceRegex = /export interface (\\w+) {([^}]+)}/g;\n let interfaceMatch;\n while ((interfaceMatch = interfaceRegex.exec(inputContent)) !== null) {\n const interfaceName = interfaceMatch[1];\n const interfaceBody = interfaceMatch[2];\n\n // Parse interface properties\n const properties = interfaceBody\n .split(\";\")\n .map((line) => line.trim())\n .filter((line) => line)\n .map((line) => {\n const [propName, type] = line.split(\":\").map((part) => part.trim());\n // Skip createdAt, updatedAt, and deletedAt\n if (\n [\"createdAt\", \"updatedAt\", \"deletedAt\"].includes(\n propName.replace(\"?\", \"\")\n )\n ) {\n return null;\n }\n const isOptional = propName.endsWith(\"?\");\n const cleanPropName = propName.replace(\"?\", \"\");\n return { name: cleanPropName, type, isOptional };\n })\n .filter((prop) => prop !== null);\n\n output += `export const ${interfaceName}Schema = z.object({\\n`;\n properties.forEach((prop, index) => {\n if (prop) {\n output += ` ${prop.name}: ${typeToZodSchema(\n prop.type,\n prop.isOptional\n )}`;\n if (index < properties.length - 1) output += \",\";\n output += \"\\n\";\n }\n });\n output += \"});\\n\\n\";\n }\n\n return output;\n}\n\n// Main execution\nasync function main() {\n try {\n const inputContent = await fs.readFile(\n path.join(process.cwd(), \".cache/types\", \"prisma.ts\"),\n \"utf-8\"\n );\n const generatedSchemas = await generateZodSchemas(inputContent);\n await fs.writeFile(\n path.join(process.cwd(), \".cache/generated-schemas.ts\"),\n generatedSchemas\n );\n console.info(\"Zod schemas generated successfully!\");\n } catch (error) {\n console.error(\"Error generating schemas:\", error);\n process.exit(1);\n }\n}\n\nmain();\n"]}
1
+ {"version":3,"file":"generate-zod-schemas.js","sourceRoot":"","sources":["../../../../src/utils/scripts/generate-zod-schemas.ts"],"names":[],"mappings":"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","sourcesContent":["import fs from \"fs/promises\";\nimport path from \"path\";\n\nasync function generateZodSchemas(inputContent: string): Promise<any> {\n let output = `import { z } from \"zod\";\\n\\n`;\n\n // Extract enum names first to help identify enum types later\n const enumNames = new Set();\n const enumRegex = /export enum (\\w+) {([^}]+)}/g;\n let enumMatch;\n while ((enumMatch = enumRegex.exec(inputContent)) !== null) {\n const enumName = enumMatch[1];\n const enumValues = enumMatch[2];\n enumNames.add(enumName);\n\n // Keep original enum definition\n output += `export enum ${enumName} {\\n${enumValues}\\n}\\n\\n`;\n }\n\n // Helper function to convert type to zod schema\n function typeToZodSchema(type: string, isOptional: boolean = false): string {\n type = type.trim();\n const baseSchema = (() => {\n if (type?.includes(\"Date\")) {\n return `z.date().or(z.string()).refine((val) => val instanceof Date || !isNaN(Date.parse(val)), \"Data inválida\")`;\n }\n switch (type) {\n case \"string\":\n return \"z.string()\";\n case \"number\":\n return \"z.number()\";\n case \"boolean\":\n return \"z.boolean()\";\n case \"any\":\n return \"z.any()\";\n default:\n // Handle arrays\n if (type?.includes(\"[]\")) {\n const arrayType = type.replace(\"[]\", \"\");\n // Handle primitive types in arrays\n switch (arrayType) {\n case \"string\":\n return \"z.array(z.string())\";\n case \"number\":\n return \"z.array(z.number())\";\n case \"boolean\":\n return \"z.array(z.boolean())\";\n default:\n // Check if it's an enum type\n if (enumNames.has(arrayType)) {\n return `z.array(z.nativeEnum(${arrayType}))`;\n }\n // Otherwise it's a relation/model type\n return `z.array(${arrayType}Schema)`;\n }\n }\n // Handle single types\n if (type.match(/^[A-Z]/)) {\n // Check if it's an enum type\n if (enumNames.has(type)) {\n return `z.nativeEnum(${type})`;\n }\n // Otherwise it's a relation/model type\n return `${type}Schema`;\n }\n return \"z.any()\";\n }\n })();\n\n return isOptional ? `${baseSchema}.optional()` : baseSchema;\n }\n\n // Extract and generate interface schemas\n const interfaceRegex = /export interface (\\w+) {([^}]+)}/g;\n let interfaceMatch;\n while ((interfaceMatch = interfaceRegex.exec(inputContent)) !== null) {\n const interfaceName = interfaceMatch[1];\n const interfaceBody = interfaceMatch[2];\n\n // Parse interface properties\n const properties = interfaceBody\n .split(\";\")\n .map((line) => line.trim())\n .filter((line) => line)\n .map((line) => {\n const [propName, type] = line.split(\":\").map((part) => part.trim());\n // Skip createdAt, updatedAt, and deletedAt\n if (\n [\"createdAt\", \"updatedAt\", \"deletedAt\"]?.includes(\n propName.replace(\"?\", \"\")\n )\n ) {\n return null;\n }\n const isOptional = propName.endsWith(\"?\");\n const cleanPropName = propName.replace(\"?\", \"\");\n return { name: cleanPropName, type, isOptional };\n })\n .filter((prop) => prop !== null);\n\n output += `export const ${interfaceName}Schema = z.object({\\n`;\n properties.forEach((prop, index) => {\n if (prop) {\n output += ` ${prop.name}: ${typeToZodSchema(\n prop.type,\n prop.isOptional\n )}`;\n if (index < properties.length - 1) output += \",\";\n output += \"\\n\";\n }\n });\n output += \"});\\n\\n\";\n }\n\n return output;\n}\n\n// Main execution\nasync function main() {\n try {\n const inputContent = await fs.readFile(\n path.join(process.cwd(), \".cache/types\", \"prisma.ts\"),\n \"utf-8\"\n );\n const generatedSchemas = await generateZodSchemas(inputContent);\n await fs.writeFile(\n path.join(process.cwd(), \".cache/generated-schemas.ts\"),\n generatedSchemas\n );\n console.info(\"Zod schemas generated successfully!\");\n } catch (error) {\n console.error(\"Error generating schemas:\", error);\n process.exit(1);\n }\n}\n\nmain();\n"]}
@@ -0,0 +1,12 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ const generate_insomnia_collection_1 = require("./generate-insomnia-collection");
5
+ const args = process.argv.slice(2);
6
+ const command = args[0];
7
+ switch (command) {
8
+ case "generate-insomnia-collection":
9
+ (0, generate_insomnia_collection_1.writeInsomniaCollectionJson)();
10
+ break;
11
+ }
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/utils/scripts/index.ts"],"names":[],"mappings":";;;AAEA,iFAA6E;AAE7E,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACnC,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AAExB,QAAQ,OAAO,EAAE,CAAC;IAChB,KAAK,8BAA8B;QACjC,IAAA,0DAA2B,GAAE,CAAC;QAC9B,MAAM;AACV,CAAC","sourcesContent":["#!/usr/bin/env node\n\nimport { writeInsomniaCollectionJson } from \"./generate-insomnia-collection\";\n\nconst args = process.argv.slice(2);\nconst command = args[0];\n\nswitch (command) {\n case \"generate-insomnia-collection\":\n writeInsomniaCollectionJson();\n break;\n}\n\n// if (command === \"generate-something\") {\n// console.log(\"Hello World from arkos generate-something!\");\n// console.log(\"This is running from your installed arkos package.\");\n// } else {\n// console.log(\"Available commands:\");\n// console.log(\" generate-something - Prints a hello world message\");\n// console.log(\"\\nUsage: pnpm arkos [command]\");\n// }\n\n// // 3. Optional: Create an index.js file in the root:\n// // index.js\n\n// // This allows your package to be used programmatically\n// module.exports = {\n// generateSomething: () => {\n// console.log(\"Hello World from arkos generate-something!\");\n// console.log(\"This is running from your imported arkos package.\");\n// },\n// };\n"]}
@@ -1 +1 @@
1
- "use strict";var R=function(e,m,s,u){function n(i){return i instanceof s?i:new s(function(t){t(i)})}return new(s||(s=Promise))(function(i,t){function d(l){try{o(u.next(l))}catch(r){t(r)}}function a(l){try{o(u.throw(l))}catch(r){t(r)}}function o(l){l.done?i(l.value):n(l.value).then(d,a)}o((u=u.apply(e,m||[])).next())})};import y from"express";import P from"cors";import b from"cookie-parser";import{getAuthRouter as q}from"./modules/auth/auth.router";import{getPrismaModelsRouter as E,getAvailableResourcesAndRoutesRouter as A}from"./modules/base/base.router";import O from"./modules/error-handler/error-handler.controller";import{rateLimit as _}from"express-rate-limit";import p from"path";import*as H from"dotenv";import M from"compression";import{handleRequestLogs as x}from"./modules/base/base.middlewares";import{checkDatabaseConnection as T,loadPrismaModule as L}from"./utils/helpers/prisma.helpers";import{getFileUploaderRouter as U}from"./modules/file-uploader/file-uploader.router";import{queryParser as N}from"./utils/helpers/query-parser.helpers";import h from"./utils/helpers/deepmerge.helper";const v=process.env.NODE_ENV;let c=".env";v==="production"?c=p.resolve(process.cwd(),".env.production"):v==="staging"?c=p.resolve(process.cwd(),".env.staging"):v==="development"?c=p.resolve(process.cwd(),".env.development"):v==="local"?c=p.resolve(process.cwd(),".env.local"):v==="test"?c=p.resolve(process.cwd(),".env.test"):v==="qa"&&(c=p.resolve(process.cwd(),".env.qa")),H.config({path:c});export const app=y();export function bootstrap(e){return R(this,void 0,void 0,function*(){var m,s,u;yield L(),e.configureApp&&(yield e.configureApp(app));const n=e?.middlewares,i=n?.disable||[],t=n?.replace||{};i.includes("compression")||app.use(t.compression||M(e?.compressionOptions)),i.includes("global-rate-limit")||app.use(t.globalRateLimit||_(h({windowMs:60*1e3,limit:1e3,standardHeaders:"draft-7",legacyHeaders:!1},e?.globalRequestRateLimitOptions||{}))),i.includes("cors")||app.use(t.cors||P(!((m=e?.cors)===null||m===void 0)&&m.customHandler?e.cors.customHandler:h({origin:(l,r)=>{var f;const w=(f=e?.cors)===null||f===void 0?void 0:f.allowedOrigins;w==="*"?r(null,!0):Array.isArray(w)?r(null,!l||w.includes(l)):typeof w=="string"?r(null,!l||w===l):r(null,!1)},methods:["GET","POST","PUT","DELETE","PATCH","OPTIONS"],allowedHeaders:["Content-Type","Authorization","Connection"],credentials:!0},((s=e?.cors)===null||s===void 0?void 0:s.options)||{}))),i.includes("express-json")||app.use(t.expressJson||y.json(e?.jsonBodyParserOptions)),i.includes("cookie-parser")||app.use(t.cookieParser||b(...e?.cookieParserParameters||[])),i.includes("query-parser")||app.use(t.queryParser||N(h({parseNull:!0,parseUndefined:!0,parseBoolean:!0},e?.queryParserOptions||{}))),i.includes("database-connection")||app.use(t.databaseConnection||T),i.includes("request-logger")||app.use(t.requestLogger||x),!((u=e?.middlewares)===null||u===void 0)&&u.additional&&e.middlewares.additional.forEach(l=>{app.use(l)});const d=e?.routers,a=d?.disable||[],o=d?.replace||{};if(a.includes("welcome-endpoint")||app.get("/api",o.welcomeEndpoint||((l,r)=>{r.status(200).json({message:e.welcomeMessage})})),!a.includes("file-uploader")){const l=o.fileUploader?yield o.fileUploader(e):yield U(e);app.use(l)}if(!a.includes("auth-router")&&e.authentication){const l=o.authRouter?yield o.authRouter(e):yield q(e);app.use("/api",l)}if(!a.includes("prisma-models-router")){const l=o.prismaModelsRouter?yield o.prismaModelsRouter(e):yield E(e);app.use("/api",l)}return app.use("/api",A()),d?.additional&&d.additional.forEach(l=>{app.use(l)}),i.includes("global-error-handler")||app.use(t.globalErrorHandler||O),app})}
1
+ "use strict";var j=function(e,R,n,s){function b(u){return u instanceof n?u:new n(function(v){v(u)})}return new(n||(n=Promise))(function(u,v){function P(o){try{a(s.next(o))}catch(p){v(p)}}function q(o){try{a(s.throw(o))}catch(p){v(p)}}function a(o){o.done?u(o.value):b(o.value).then(P,q)}a((s=s.apply(e,R||[])).next())})};import U from"express";import N from"cors";import D from"cookie-parser";import{getAuthRouter as B}from"./modules/auth/auth.router";import{getPrismaModelsRouter as S,getAvailableResourcesAndRoutesRouter as V}from"./modules/base/base.router";import z from"./modules/error-handler/error-handler.controller";import{rateLimit as F}from"express-rate-limit";import _ from"path";import*as G from"dotenv";import I from"compression";import{handleRequestLogs as J}from"./modules/base/base.middlewares";import{checkDatabaseConnection as K,loadPrismaModule as Q}from"./utils/helpers/prisma.helpers";import{getFileUploaderRouter as W}from"./modules/file-uploader/file-uploader.router";import{queryParser as X}from"./utils/helpers/query-parser.helpers";import L from"./utils/helpers/deepmerge.helper";const y=process.env.NODE_ENV;let f=".env";y==="production"?f=_.resolve(process.cwd(),".env.production"):y==="staging"?f=_.resolve(process.cwd(),".env.staging"):y==="development"?f=_.resolve(process.cwd(),".env.development"):y==="local"?f=_.resolve(process.cwd(),".env.local"):y==="test"?f=_.resolve(process.cwd(),".env.test"):y==="qa"&&(f=_.resolve(process.cwd(),".env.qa")),G.config({path:f});export const app=U();export function bootstrap(e){return j(this,void 0,void 0,function*(){var R,n,s,b,u,v,P,q,a,o,p,E,A,O,H,M;yield Q(),e.configureApp&&(yield e.configureApp(app));const w=e?.middlewares,l=w?.disable||[],r=w?.replace||{};!((R=l?.includes)===null||R===void 0)&&R.call(l,"compression")||app.use(r.compression||I(e?.compressionOptions)),!((n=l?.includes)===null||n===void 0)&&n.call(l,"global-rate-limit")||app.use(r.globalRateLimit||F(L({windowMs:60*1e3,limit:1e3,standardHeaders:"draft-7",legacyHeaders:!1},e?.globalRequestRateLimitOptions||{}))),!((s=l?.includes)===null||s===void 0)&&s.call(l,"cors")||app.use(r.cors||N(!((b=e?.cors)===null||b===void 0)&&b.customHandler?e.cors.customHandler:L({origin:(d,h)=>{var x,T;const c=(x=e?.cors)===null||x===void 0?void 0:x.allowedOrigins;c==="*"?h(null,!0):Array.isArray(c)?h(null,!d||((T=c?.includes)===null||T===void 0?void 0:T.call(c,d))):typeof c=="string"?h(null,!d||c===d):h(null,!1)},methods:["GET","POST","PUT","DELETE","PATCH","OPTIONS"],allowedHeaders:["Content-Type","Authorization","Connection"],credentials:!0},((u=e?.cors)===null||u===void 0?void 0:u.options)||{}))),!((v=l?.includes)===null||v===void 0)&&v.call(l,"express-json")||app.use(r.expressJson||U.json(e?.jsonBodyParserOptions)),!((P=l?.includes)===null||P===void 0)&&P.call(l,"cookie-parser")||app.use(r.cookieParser||D(...e?.cookieParserParameters||[])),!((q=l?.includes)===null||q===void 0)&&q.call(l,"query-parser")||app.use(r.queryParser||X(L({parseNull:!0,parseUndefined:!0,parseBoolean:!0},e?.queryParserOptions||{}))),!((a=l?.includes)===null||a===void 0)&&a.call(l,"database-connection")||app.use(r.databaseConnection||K),!((o=l?.includes)===null||o===void 0)&&o.call(l,"request-logger")||app.use(r.requestLogger||J),!((p=e?.middlewares)===null||p===void 0)&&p.additional&&e.middlewares.additional.forEach(d=>{app.use(d)});const t=e?.routers,i=t?.disable||[],m=t?.replace||{};if(!((E=i?.includes)===null||E===void 0)&&E.call(i,"welcome-endpoint")||app.get("/api",m.welcomeEndpoint||((d,h)=>{h.status(200).json({message:e.welcomeMessage})})),!(!((A=i?.includes)===null||A===void 0)&&A.call(i,"file-uploader"))){const d=m.fileUploader?yield m.fileUploader(e):yield W(e);app.use(d)}if(!(!((O=i?.includes)===null||O===void 0)&&O.call(i,"auth-router"))&&e.authentication){const d=m.authRouter?yield m.authRouter(e):yield B(e);app.use("/api",d)}if(!(!((H=i?.includes)===null||H===void 0)&&H.call(i,"prisma-models-router"))){const d=m.prismaModelsRouter?yield m.prismaModelsRouter(e):yield S(e);app.use("/api",d)}return app.use("/api",V()),t?.additional&&t.additional.forEach(d=>{app.use(d)}),!((M=l?.includes)===null||M===void 0)&&M.call(l,"global-error-handler")||app.use(r.globalErrorHandler||z),app})}
@@ -1 +1 @@
1
- {"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/app.ts"],"names":[],"mappings":"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","sourcesContent":["import express from \"express\";\nimport cors from \"cors\";\nimport cookieParser from \"cookie-parser\";\nimport { getAuthRouter } from \"./modules/auth/auth.router\";\nimport {\n getPrismaModelsRouter,\n getAvailableResourcesAndRoutesRouter,\n} from \"./modules/base/base.router\";\nimport errorHandler from \"./modules/error-handler/error-handler.controller\";\nimport { rateLimit } from \"express-rate-limit\";\nimport path from \"path\";\nimport * as dotenv from \"dotenv\";\nimport compression from \"compression\";\nimport { handleRequestLogs } from \"./modules/base/base.middlewares\";\nimport {\n checkDatabaseConnection,\n loadPrismaModule,\n} from \"./utils/helpers/prisma.helpers\";\nimport { getFileUploaderRouter } from \"./modules/file-uploader/file-uploader.router\";\nimport { ArkosConfig } from \"./types/arkos-config\";\nimport { queryParser } from \"./utils/helpers/query-parser.helpers\";\nimport deepmerge from \"./utils/helpers/deepmerge.helper\";\n\nconst ENV = process.env.NODE_ENV;\nlet envPath = \".env\";\n\n// Default to `.env.local` if available in any environment\nif (ENV === \"production\") {\n envPath = path.resolve(process.cwd(), \".env.production\");\n} else if (ENV === \"staging\") {\n envPath = path.resolve(process.cwd(), \".env.staging\");\n} else if (ENV === \"development\") {\n envPath = path.resolve(process.cwd(), \".env.development\");\n} else if (ENV === \"local\") {\n // For local development, .env.local can be used\n envPath = path.resolve(process.cwd(), \".env.local\");\n}\n\n// Optionally, add support for `.env.test`, `.env.qa`, or other environments if required\nelse if (ENV === \"test\") {\n envPath = path.resolve(process.cwd(), \".env.test\");\n} else if (ENV === \"qa\") {\n envPath = path.resolve(process.cwd(), \".env.qa\");\n}\n\ndotenv.config({ path: envPath });\n\nexport const app: express.Express = express();\n\nexport async function bootstrap(\n arkosConfig: ArkosConfig\n): Promise<express.Express> {\n await loadPrismaModule();\n\n if (arkosConfig.configureApp) await arkosConfig.configureApp(app);\n\n const middlewaresConfig = arkosConfig?.middlewares;\n const disabledMiddlewares = middlewaresConfig?.disable || [];\n const replacedMiddlewares = middlewaresConfig?.replace || {};\n\n // Compression middleware\n if (!disabledMiddlewares.includes(\"compression\"))\n app.use(\n replacedMiddlewares.compression ||\n compression(arkosConfig?.compressionOptions)\n );\n\n // Global rate limit middleware\n if (!disabledMiddlewares.includes(\"global-rate-limit\"))\n app.use(\n replacedMiddlewares.globalRateLimit ||\n rateLimit(\n deepmerge(\n {\n windowMs: 60 * 1000,\n limit: 1000,\n standardHeaders: \"draft-7\",\n legacyHeaders: false,\n },\n arkosConfig?.globalRequestRateLimitOptions || {}\n )\n )\n );\n\n // CORS middleware\n if (!disabledMiddlewares.includes(\"cors\"))\n app.use(\n replacedMiddlewares.cors ||\n cors(\n arkosConfig?.cors?.customHandler\n ? arkosConfig.cors.customHandler\n : deepmerge(\n {\n origin: (\n origin: string,\n cb: (err: Error | null, allow?: boolean) => void\n ) => {\n const allowed = arkosConfig?.cors?.allowedOrigins;\n\n if (allowed === \"*\") {\n cb(null, true);\n } else if (Array.isArray(allowed)) {\n cb(null, !origin || allowed.includes(origin));\n } else if (typeof allowed === \"string\") {\n cb(null, !origin || allowed === origin);\n } else {\n cb(null, false);\n }\n },\n methods: [\"GET\", \"POST\", \"PUT\", \"DELETE\", \"PATCH\", \"OPTIONS\"],\n allowedHeaders: [\n \"Content-Type\",\n \"Authorization\",\n \"Connection\",\n ],\n credentials: true,\n },\n arkosConfig?.cors?.options || {}\n )\n )\n );\n\n // JSON body parser middleware\n if (!disabledMiddlewares.includes(\"express-json\"))\n app.use(\n replacedMiddlewares.expressJson ||\n express.json(arkosConfig?.jsonBodyParserOptions)\n );\n\n // Cookie parser middleware\n if (!disabledMiddlewares.includes(\"cookie-parser\"))\n app.use(\n replacedMiddlewares.cookieParser ||\n cookieParser(...[...(arkosConfig?.cookieParserParameters || [])])\n );\n\n // Query parser middleware\n if (!disabledMiddlewares.includes(\"query-parser\"))\n app.use(\n replacedMiddlewares.queryParser ||\n queryParser(\n deepmerge(\n {\n parseNull: true,\n parseUndefined: true,\n parseBoolean: true,\n },\n arkosConfig?.queryParserOptions || {}\n )\n )\n );\n\n // Database connection check middleware\n if (!disabledMiddlewares.includes(\"database-connection\"))\n app.use(replacedMiddlewares.databaseConnection || checkDatabaseConnection);\n\n // Request logger middleware\n if (!disabledMiddlewares.includes(\"request-logger\"))\n app.use(replacedMiddlewares.requestLogger || handleRequestLogs);\n\n // Additional custom middlewares\n if (arkosConfig?.middlewares?.additional)\n arkosConfig.middlewares.additional.forEach((middleware) => {\n app.use(middleware);\n });\n\n // Configure routers\n const routersConfig = arkosConfig?.routers;\n const disabledRouters = routersConfig?.disable || [];\n const replacedRouters = routersConfig?.replace || {};\n\n // Welcome endpoint\n if (!disabledRouters.includes(\"welcome-endpoint\"))\n app.get(\n \"/api\",\n replacedRouters.welcomeEndpoint ||\n ((req, res) => {\n res.status(200).json({ message: arkosConfig.welcomeMessage });\n })\n );\n\n // File uploader router\n if (!disabledRouters.includes(\"file-uploader\")) {\n const fileUploaderRouter = replacedRouters.fileUploader\n ? await replacedRouters.fileUploader(arkosConfig)\n : await getFileUploaderRouter(arkosConfig);\n app.use(fileUploaderRouter);\n }\n\n // Auth router\n if (!disabledRouters.includes(\"auth-router\") && arkosConfig.authentication) {\n const authRouter = replacedRouters.authRouter\n ? await replacedRouters.authRouter(arkosConfig)\n : await getAuthRouter(arkosConfig);\n app.use(\"/api\", authRouter);\n }\n\n // Prisma models router\n if (!disabledRouters.includes(\"prisma-models-router\")) {\n const modelsRouter = replacedRouters.prismaModelsRouter\n ? await replacedRouters.prismaModelsRouter(arkosConfig)\n : await getPrismaModelsRouter(arkosConfig);\n app.use(\"/api\", modelsRouter);\n }\n\n app.use(\"/api\", getAvailableResourcesAndRoutesRouter());\n\n // Additional custom routers\n if (routersConfig?.additional) {\n routersConfig.additional.forEach((router) => {\n app.use(router);\n });\n }\n\n // Global error handler middleware (must be last)\n if (!disabledMiddlewares.includes(\"global-error-handler\"))\n app.use(replacedMiddlewares.globalErrorHandler || errorHandler);\n\n return app;\n}\n"]}
1
+ {"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/app.ts"],"names":[],"mappings":"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","sourcesContent":["import express from \"express\";\nimport cors from \"cors\";\nimport cookieParser from \"cookie-parser\";\nimport { getAuthRouter } from \"./modules/auth/auth.router\";\nimport {\n getPrismaModelsRouter,\n getAvailableResourcesAndRoutesRouter,\n} from \"./modules/base/base.router\";\nimport errorHandler from \"./modules/error-handler/error-handler.controller\";\nimport { rateLimit } from \"express-rate-limit\";\nimport path from \"path\";\nimport * as dotenv from \"dotenv\";\nimport compression from \"compression\";\nimport { handleRequestLogs } from \"./modules/base/base.middlewares\";\nimport {\n checkDatabaseConnection,\n loadPrismaModule,\n} from \"./utils/helpers/prisma.helpers\";\nimport { getFileUploaderRouter } from \"./modules/file-uploader/file-uploader.router\";\nimport { ArkosConfig } from \"./types/arkos-config\";\nimport { queryParser } from \"./utils/helpers/query-parser.helpers\";\nimport deepmerge from \"./utils/helpers/deepmerge.helper\";\n\nconst ENV = process.env.NODE_ENV;\nlet envPath = \".env\";\n\n// Default to `.env.local` if available in any environment\nif (ENV === \"production\") {\n envPath = path.resolve(process.cwd(), \".env.production\");\n} else if (ENV === \"staging\") {\n envPath = path.resolve(process.cwd(), \".env.staging\");\n} else if (ENV === \"development\") {\n envPath = path.resolve(process.cwd(), \".env.development\");\n} else if (ENV === \"local\") {\n // For local development, .env.local can be used\n envPath = path.resolve(process.cwd(), \".env.local\");\n}\n\n// Optionally, add support for `.env.test`, `.env.qa`, or other environments if required\nelse if (ENV === \"test\") {\n envPath = path.resolve(process.cwd(), \".env.test\");\n} else if (ENV === \"qa\") {\n envPath = path.resolve(process.cwd(), \".env.qa\");\n}\n\ndotenv.config({ path: envPath });\n\nexport const app: express.Express = express();\n\nexport async function bootstrap(\n arkosConfig: ArkosConfig\n): Promise<express.Express> {\n await loadPrismaModule();\n\n if (arkosConfig.configureApp) await arkosConfig.configureApp(app);\n\n const middlewaresConfig = arkosConfig?.middlewares;\n const disabledMiddlewares = middlewaresConfig?.disable || [];\n const replacedMiddlewares = middlewaresConfig?.replace || {};\n\n // Compression middleware\n if (!disabledMiddlewares?.includes?.(\"compression\"))\n app.use(\n replacedMiddlewares.compression ||\n compression(arkosConfig?.compressionOptions)\n );\n\n // Global rate limit middleware\n if (!disabledMiddlewares?.includes?.(\"global-rate-limit\"))\n app.use(\n replacedMiddlewares.globalRateLimit ||\n rateLimit(\n deepmerge(\n {\n windowMs: 60 * 1000,\n limit: 1000,\n standardHeaders: \"draft-7\",\n legacyHeaders: false,\n },\n arkosConfig?.globalRequestRateLimitOptions || {}\n )\n )\n );\n\n // CORS middleware\n if (!disabledMiddlewares?.includes?.(\"cors\"))\n app.use(\n replacedMiddlewares.cors ||\n cors(\n arkosConfig?.cors?.customHandler\n ? arkosConfig.cors.customHandler\n : deepmerge(\n {\n origin: (\n origin: string,\n cb: (err: Error | null, allow?: boolean) => void\n ) => {\n const allowed = arkosConfig?.cors?.allowedOrigins;\n\n if (allowed === \"*\") {\n cb(null, true);\n } else if (Array.isArray(allowed)) {\n cb(null, !origin || allowed?.includes?.(origin));\n } else if (typeof allowed === \"string\") {\n cb(null, !origin || allowed === origin);\n } else {\n cb(null, false);\n }\n },\n methods: [\"GET\", \"POST\", \"PUT\", \"DELETE\", \"PATCH\", \"OPTIONS\"],\n allowedHeaders: [\n \"Content-Type\",\n \"Authorization\",\n \"Connection\",\n ],\n credentials: true,\n },\n arkosConfig?.cors?.options || {}\n )\n )\n );\n\n // JSON body parser middleware\n if (!disabledMiddlewares?.includes?.(\"express-json\"))\n app.use(\n replacedMiddlewares.expressJson ||\n express.json(arkosConfig?.jsonBodyParserOptions)\n );\n\n // Cookie parser middleware\n if (!disabledMiddlewares?.includes?.(\"cookie-parser\"))\n app.use(\n replacedMiddlewares.cookieParser ||\n cookieParser(...[...(arkosConfig?.cookieParserParameters || [])])\n );\n\n // Query parser middleware\n if (!disabledMiddlewares?.includes?.(\"query-parser\"))\n app.use(\n replacedMiddlewares.queryParser ||\n queryParser(\n deepmerge(\n {\n parseNull: true,\n parseUndefined: true,\n parseBoolean: true,\n },\n arkosConfig?.queryParserOptions || {}\n )\n )\n );\n\n // Database connection check middleware\n if (!disabledMiddlewares?.includes?.(\"database-connection\"))\n app.use(replacedMiddlewares.databaseConnection || checkDatabaseConnection);\n\n // Request logger middleware\n if (!disabledMiddlewares?.includes?.(\"request-logger\"))\n app.use(replacedMiddlewares.requestLogger || handleRequestLogs);\n\n // Additional custom middlewares\n if (arkosConfig?.middlewares?.additional)\n arkosConfig.middlewares.additional.forEach((middleware) => {\n app.use(middleware);\n });\n\n // Configure routers\n const routersConfig = arkosConfig?.routers;\n const disabledRouters = routersConfig?.disable || [];\n const replacedRouters = routersConfig?.replace || {};\n\n // Welcome endpoint\n if (!disabledRouters?.includes?.(\"welcome-endpoint\"))\n app.get(\n \"/api\",\n replacedRouters.welcomeEndpoint ||\n ((req, res) => {\n res.status(200).json({ message: arkosConfig.welcomeMessage });\n })\n );\n\n // File uploader router\n if (!disabledRouters?.includes?.(\"file-uploader\")) {\n const fileUploaderRouter = replacedRouters.fileUploader\n ? await replacedRouters.fileUploader(arkosConfig)\n : await getFileUploaderRouter(arkosConfig);\n app.use(fileUploaderRouter);\n }\n\n // Auth router\n if (\n !disabledRouters?.includes?.(\"auth-router\") &&\n arkosConfig.authentication\n ) {\n const authRouter = replacedRouters.authRouter\n ? await replacedRouters.authRouter(arkosConfig)\n : await getAuthRouter(arkosConfig);\n app.use(\"/api\", authRouter);\n }\n\n // Prisma models router\n if (!disabledRouters?.includes?.(\"prisma-models-router\")) {\n const modelsRouter = replacedRouters.prismaModelsRouter\n ? await replacedRouters.prismaModelsRouter(arkosConfig)\n : await getPrismaModelsRouter(arkosConfig);\n app.use(\"/api\", modelsRouter);\n }\n\n app.use(\"/api\", getAvailableResourcesAndRoutesRouter());\n\n // Additional custom routers\n if (routersConfig?.additional) {\n routersConfig.additional.forEach((router) => {\n app.use(router);\n });\n }\n\n // Global error handler middleware (must be last)\n if (!disabledMiddlewares?.includes?.(\"global-error-handler\"))\n app.use(replacedMiddlewares.globalErrorHandler || errorHandler);\n\n return app;\n}\n"]}
@@ -0,0 +1,2 @@
1
+ export { addPrismaQueryOptionsToRequestQuery, handleRequestBodyValidationAndTransformation, } from "../../modules/base/base.middlewares";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/exports/middlewares/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mCAAmC,EACnC,4CAA4C,GAC7C,MAAM,qCAAqC,CAAC","sourcesContent":["export {\n addPrismaQueryOptionsToRequestQuery,\n handleRequestBodyValidationAndTransformation,\n} from \"../../modules/base/base.middlewares\";\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/exports/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,yCAAyC,CAAC","sourcesContent":["export * from \"../../utils/helpers/change-case.helpers\";\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/exports/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,yCAAyC,CAAC","sourcesContent":["export * from \"../../utils/helpers/change-case.helpers\";\n\nexport { MsDuration } from \"../../modules/auth/utils/helpers/auth.controller.helpers\";\n"]}