arkos 1.2.15-test.2 → 1.2.15-test.4
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/cjs/app.js +1 -1
- package/dist/cjs/exports/controllers/index.js +1 -1
- package/dist/cjs/exports/error-handler/index.js +1 -1
- package/dist/cjs/exports/services/index.js +1 -1
- package/dist/cjs/exports/utils/index.js +1 -1
- package/dist/cjs/exports/validation/index.js +1 -1
- package/dist/cjs/modules/auth/auth.controller.js +1 -1
- package/dist/cjs/modules/auth/auth.router.js +1 -1
- package/dist/cjs/modules/auth/auth.service.js +1 -1
- package/dist/cjs/modules/auth/utils/helpers/auth.controller.helpers.js +1 -1
- package/dist/cjs/modules/base/base.controller.js +1 -1
- package/dist/cjs/modules/base/base.middlewares.js +1 -1
- package/dist/cjs/modules/base/base.router.js +1 -1
- package/dist/cjs/modules/base/base.service.js +1 -1
- package/dist/cjs/modules/base/utils/helpers/base.middlewares.helpers.js +1 -1
- package/dist/cjs/modules/base/utils/helpers/base.router.helpers.js +1 -1
- package/dist/cjs/modules/email/email.service.js +1 -1
- package/dist/cjs/modules/error-handler/error-handler.controller.js +1 -1
- package/dist/cjs/modules/error-handler/utils/error-handler.helpers.js +1 -1
- package/dist/cjs/modules/file-upload/file-upload.controller.js +1 -1
- package/dist/cjs/modules/file-upload/file-upload.router.js +1 -1
- package/dist/cjs/modules/file-upload/file-upload.service.js +1 -1
- package/dist/cjs/modules/file-upload/utils/helpers/file-upload.helpers.js +1 -1
- package/dist/cjs/modules/swagger/swagger.router.js +1 -1
- package/dist/cjs/modules/swagger/swagger.router.js.map +1 -1
- package/dist/cjs/modules/swagger/utils/helpers/get-swagger-default-configs.js +1 -1
- package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-prisma-json-schemas.js +1 -1
- package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schemas.js +1 -1
- package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes-paths.js +1 -1
- package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-parent-routes-paths.js +1 -1
- package/dist/cjs/modules/swagger/utils/helpers/missing-json-schemas-generator.js +1 -1
- package/dist/cjs/modules/swagger/utils/helpers/swagger.router.helpers.js +1 -1
- package/dist/cjs/paths.js +1 -1
- package/dist/cjs/server.js +1 -1
- package/dist/cjs/utils/cli/build.js +1 -1
- package/dist/cjs/utils/cli/dev.js +1 -1
- package/dist/cjs/utils/cli/generate.js +1 -1
- package/dist/cjs/utils/cli/start.js +1 -1
- package/dist/cjs/utils/cli/utils/cli.helpers.js +1 -1
- package/dist/cjs/utils/cli/utils/template-generator/templates/generate-router-template.js +1 -1
- package/dist/cjs/utils/dotenv.helpers.js +1 -1
- package/dist/cjs/utils/features/api.features.js +1 -1
- package/dist/cjs/utils/features/change-case.features.js +1 -1
- package/dist/cjs/utils/features/port-and-host-allocator.js +1 -1
- package/dist/cjs/utils/helpers/api.features.helpers.js +1 -1
- package/dist/cjs/utils/helpers/fs.helpers.js +1 -1
- package/dist/cjs/utils/helpers/global.helpers.js +1 -1
- package/dist/cjs/utils/helpers/global.helpers.js.map +1 -1
- package/dist/cjs/utils/helpers/models.helpers.js +1 -1
- package/dist/cjs/utils/helpers/prisma.helpers.js +1 -1
- package/dist/cjs/utils/helpers/routers.helpers.js +1 -1
- package/dist/cjs/utils/prisma/enhaced-prisma-json-schema-generator.js +1 -1
- package/dist/cjs/utils/validate-dto.js +1 -1
- package/dist/cjs/utils/validate-schema.js +1 -1
- package/dist/esm/modules/swagger/swagger.router.js +1 -1
- package/dist/esm/modules/swagger/swagger.router.js.map +1 -1
- package/dist/esm/utils/cli/utils/cli.helpers.js +1 -1
- package/dist/esm/utils/helpers/global.helpers.js +1 -1
- package/dist/esm/utils/helpers/global.helpers.js.map +1 -1
- package/dist/types/utils/helpers/global.helpers.d.ts +1 -0
- package/package.json +1 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var __importDefault=function(a){return a&&a.__esModule?a:{default:a}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.generatePrismaModelMainRoutesPaths=generatePrismaModelMainRoutesPaths;const swagger_router_helpers_1=require("../../swagger.router.helpers"),pluralize_1=__importDefault(require("pluralize")),base_router_helpers_1=require("../../../../../base/utils/helpers/base.router.helpers"),utils_1=require("../../../../../../exports/utils"),models_helpers_1=require("../../../../../../utils/helpers/models.helpers");async function generatePrismaModelMainRoutesPaths(a,i={},c){const p=(0,utils_1.kebabCase)(a),t=pluralize_1.default.plural(p),n=(0,utils_1.pascalCase)(a),e=(0,swagger_router_helpers_1.kebabToHuman)(p),r=pluralize_1.default.plural(e),o=(await(0,models_helpers_1.importPrismaModelModules)(a,c))?.router?.config;if(o?.disable===!0)return i;const d=async s=>{const u=c.swagger?.mode;if(c.swagger?.strict)return u||"prisma";const l=s;return await(0,models_helpers_1.localValidatorFileExists)(l,a,c)&&u||"prisma"};if(!(0,base_router_helpers_1.isEndpointDisabled)(o,"createOne")){i[`/api/${t}`]||(i[`/api/${t}`]={});const s=await d("create");i[`/api/${t}`].post={tags:[r],summary:`Create a new ${e}`,description:`Creates a new ${e} record in the system`,operationId:`create${n}`,requestBody:{description:`${e} data to create`,required:!0,content:{"application/json":{schema:{$ref:(0,swagger_router_helpers_1.getSchemaRef)(`Create${n}`,s)}}}},responses:{201:{description:`${e} created successfully`,content:{"application/json":{schema:{$ref:(0,swagger_router_helpers_1.getSchemaRef)(`${n}`,s)}}}},400:{description:"Invalid input data provided"},401:{description:"Authentication required"},403:{description:"Insufficient permissions"}},security:[{BearerAuth:[]}]}}if(!(0,base_router_helpers_1.isEndpointDisabled)(o,"findMany")){i[`/api/${t}`]||(i[`/api/${t}`]={});const s=await d("findMany");i[`/api/${t}`].get={tags:[r],summary:`Get ${r}`,description:`Retrieves a paginated list of ${r} with optional filtering and sorting`,operationId:`find${pluralize_1.default.plural(n)}`,parameters:[{name:"filters",in:"query",description:"Filter criteria in JSON format",schema:{type:"string"}},{name:"sort",in:"query",description:"Sort field (prefix with '-' for descending order)",schema:{type:"string"}},{name:"page",in:"query",description:"Page number (starts from 1)",schema:{type:"integer",minimum:1}},{name:"limit",in:"query",description:"Number of items per page",schema:{type:"integer",minimum:1,maximum:100}},{name:"fields",in:"query",description:"Comma-separated list of fields to include in response",schema:{type:"string"}}],responses:{200:{description:`List of ${r} retrieved successfully`,content:{"application/json":{schema:{type:"object",properties:{total:{type:"integer",description:"Total number of records matching the criteria"},results:{type:"integer",description:"Number of records returned in current page"},data:{type:"array",items:{$ref:(0,swagger_router_helpers_1.getSchemaRef)(`FindMany${n}`,s)}}}}}}},401:{description:"Authentication required"},403:{description:"Insufficient permissions"}},security:[{BearerAuth:[]}]}}if(!(0,base_router_helpers_1.isEndpointDisabled)(o,"createMany")){const s=await d("createMany");i[`/api/${t}/many`]={post:{tags:[r],summary:`Create multiple ${r}`,description:`Creates multiple ${r} records in a single batch operation`,operationId:`createMany${n}`,requestBody:{description:`Array of ${e} data to create`,required:!0,content:{"application/json":{schema:{type:"array",items:{$ref:(0,swagger_router_helpers_1.getSchemaRef)(`CreateMany${n}`,s)}}}}},responses:{201:{description:`${r} created successfully`,content:{"application/json":{schema:{type:"object",properties:{count:{type:"integer",description:"Number of records created"}}}}}},400:{description:"Invalid input data provided"},401:{description:"Authentication required"},403:{description:"Insufficient permissions"}},security:[{BearerAuth:[]}]}}}if(!(0,base_router_helpers_1.isEndpointDisabled)(o,"updateMany")){i[`/api/${t}/many`]||(i[`/api/${t}/many`]={});const s=await d("updateMany");i[`/api/${t}/many`].patch={tags:[r],summary:`Update multiple ${r}`,description:`Updates multiple ${r} records that match the specified filter criteria`,operationId:`updateMany${n}`,parameters:[{name:"filters",in:"query",description:"Filter criteria in JSON format (required)",required:!0,schema:{type:"string"}}],requestBody:{description:`Partial ${e} data to update`,required:!0,content:{"application/json":{schema:{$ref:(0,swagger_router_helpers_1.getSchemaRef)(`UpdateMany${n}`,s)}}}},responses:{200:{description:`${r} updated successfully`,content:{"application/json":{schema:{type:"object",properties:{count:{type:"integer",description:"Number of records updated"}}}}}},400:{description:"Invalid input data or missing filter criteria"},401:{description:"Authentication required"},403:{description:"Insufficient permissions"}},security:[{BearerAuth:[]}]}}if((0,base_router_helpers_1.isEndpointDisabled)(o,"deleteMany")||(i[`/api/${t}/many`]||(i[`/api/${t}/many`]={}),i[`/api/${t}/many`].delete={tags:[r],summary:`Delete multiple ${r}`,description:`Deletes multiple ${r} records that match the specified filter criteria`,operationId:`deleteMany${n}`,parameters:[{name:"filters",in:"query",description:"Filter criteria in JSON format (required)",required:!0,schema:{type:"string"}}],responses:{200:{description:`${r} deleted successfully`,content:{"application/json":{schema:{type:"object",properties:{count:{type:"integer",description:"Number of records deleted"}}}}}},400:{description:"Missing filter criteria"},401:{description:"Authentication required"},403:{description:"Insufficient permissions"}},security:[{BearerAuth:[]}]}),!(0,base_router_helpers_1.isEndpointDisabled)(o,"findOne")){const s=await d("findOne");i[`/api/${t}/{id}`]={get:{tags:[r],summary:`Get ${e} by ID`,description:`Retrieves a single ${e} record by its unique identifier`,operationId:`find${n}ById`,parameters:[{name:"id",in:"path",description:`Unique identifier of the ${e}`,required:!0,schema:{type:"string"}}],responses:{200:{description:`${e} retrieved successfully`,content:{"application/json":{schema:{$ref:(0,swagger_router_helpers_1.getSchemaRef)(`FindOne${n}`,s)}}}},401:{description:"Authentication required"},403:{description:"Insufficient permissions"},404:{description:`${e} not found`}},security:[{BearerAuth:[]}]}}}if(!(0,base_router_helpers_1.isEndpointDisabled)(o,"updateOne")){i[`/api/${t}/{id}`]||(i[`/api/${t}/{id}`]={});const s=await d("update");i[`/api/${t}/{id}`].patch={tags:[r],summary:`Update ${e} by ID`,description:`Updates a single ${e} record by its unique identifier`,operationId:`update${n}`,parameters:[{name:"id",in:"path",description:`Unique identifier of the ${e}`,required:!0,schema:{type:"string"}}],requestBody:{description:`Partial ${e} data to update`,required:!0,content:{"application/json":{schema:{$ref:(0,swagger_router_helpers_1.getSchemaRef)(`Update${n}`,s)}}}},responses:{200:{description:`${e} updated successfully`,content:{"application/json":{schema:{$ref:(0,swagger_router_helpers_1.getSchemaRef)(`${n}`,s)}}}},400:{description:"Invalid input data provided"},401:{description:"Authentication required"},403:{description:"Insufficient permissions"},404:{description:`${e} not found`}},security:[{BearerAuth:[]}]}}(0,base_router_helpers_1.isEndpointDisabled)(o,"deleteOne")||(i[`/api/${t}/{id}`]||(i[`/api/${t}/{id}`]={}),i[`/api/${t}/{id}`].delete={tags:[r],summary:`Delete ${e} by ID`,description:`Permanently deletes a single ${e} record by its unique identifier`,operationId:`delete${n}`,parameters:[{name:"id",in:"path",description:`Unique identifier of the ${e}`,required:!0,schema:{type:"string"}}],responses:{204:{description:`${e} deleted successfully`},401:{description:"Authentication required"},403:{description:"Insufficient permissions"},404:{description:`${e} not found`}},security:[{BearerAuth:[]}]})}
|
|
1
|
+
"use strict";var __importDefault=this&&this.__importDefault||function(a){return a&&a.__esModule?a:{default:a}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.generatePrismaModelMainRoutesPaths=generatePrismaModelMainRoutesPaths;const swagger_router_helpers_1=require("../../swagger.router.helpers"),pluralize_1=__importDefault(require("pluralize")),base_router_helpers_1=require("../../../../../base/utils/helpers/base.router.helpers"),utils_1=require("../../../../../../exports/utils"),models_helpers_1=require("../../../../../../utils/helpers/models.helpers");async function generatePrismaModelMainRoutesPaths(a,i={},c){const p=(0,utils_1.kebabCase)(a),t=pluralize_1.default.plural(p),n=(0,utils_1.pascalCase)(a),e=(0,swagger_router_helpers_1.kebabToHuman)(p),r=pluralize_1.default.plural(e),o=(await(0,models_helpers_1.importPrismaModelModules)(a,c))?.router?.config;if(o?.disable===!0)return i;const d=async s=>{const u=c.swagger?.mode;if(c.swagger?.strict)return u||"prisma";const l=s;return await(0,models_helpers_1.localValidatorFileExists)(l,a,c)&&u||"prisma"};if(!(0,base_router_helpers_1.isEndpointDisabled)(o,"createOne")){i[`/api/${t}`]||(i[`/api/${t}`]={});const s=await d("create");i[`/api/${t}`].post={tags:[r],summary:`Create a new ${e}`,description:`Creates a new ${e} record in the system`,operationId:`create${n}`,requestBody:{description:`${e} data to create`,required:!0,content:{"application/json":{schema:{$ref:(0,swagger_router_helpers_1.getSchemaRef)(`Create${n}`,s)}}}},responses:{201:{description:`${e} created successfully`,content:{"application/json":{schema:{$ref:(0,swagger_router_helpers_1.getSchemaRef)(`${n}`,s)}}}},400:{description:"Invalid input data provided"},401:{description:"Authentication required"},403:{description:"Insufficient permissions"}},security:[{BearerAuth:[]}]}}if(!(0,base_router_helpers_1.isEndpointDisabled)(o,"findMany")){i[`/api/${t}`]||(i[`/api/${t}`]={});const s=await d("findMany");i[`/api/${t}`].get={tags:[r],summary:`Get ${r}`,description:`Retrieves a paginated list of ${r} with optional filtering and sorting`,operationId:`find${pluralize_1.default.plural(n)}`,parameters:[{name:"filters",in:"query",description:"Filter criteria in JSON format",schema:{type:"string"}},{name:"sort",in:"query",description:"Sort field (prefix with '-' for descending order)",schema:{type:"string"}},{name:"page",in:"query",description:"Page number (starts from 1)",schema:{type:"integer",minimum:1}},{name:"limit",in:"query",description:"Number of items per page",schema:{type:"integer",minimum:1,maximum:100}},{name:"fields",in:"query",description:"Comma-separated list of fields to include in response",schema:{type:"string"}}],responses:{200:{description:`List of ${r} retrieved successfully`,content:{"application/json":{schema:{type:"object",properties:{total:{type:"integer",description:"Total number of records matching the criteria"},results:{type:"integer",description:"Number of records returned in current page"},data:{type:"array",items:{$ref:(0,swagger_router_helpers_1.getSchemaRef)(`FindMany${n}`,s)}}}}}}},401:{description:"Authentication required"},403:{description:"Insufficient permissions"}},security:[{BearerAuth:[]}]}}if(!(0,base_router_helpers_1.isEndpointDisabled)(o,"createMany")){const s=await d("createMany");i[`/api/${t}/many`]={post:{tags:[r],summary:`Create multiple ${r}`,description:`Creates multiple ${r} records in a single batch operation`,operationId:`createMany${n}`,requestBody:{description:`Array of ${e} data to create`,required:!0,content:{"application/json":{schema:{type:"array",items:{$ref:(0,swagger_router_helpers_1.getSchemaRef)(`CreateMany${n}`,s)}}}}},responses:{201:{description:`${r} created successfully`,content:{"application/json":{schema:{type:"object",properties:{count:{type:"integer",description:"Number of records created"}}}}}},400:{description:"Invalid input data provided"},401:{description:"Authentication required"},403:{description:"Insufficient permissions"}},security:[{BearerAuth:[]}]}}}if(!(0,base_router_helpers_1.isEndpointDisabled)(o,"updateMany")){i[`/api/${t}/many`]||(i[`/api/${t}/many`]={});const s=await d("updateMany");i[`/api/${t}/many`].patch={tags:[r],summary:`Update multiple ${r}`,description:`Updates multiple ${r} records that match the specified filter criteria`,operationId:`updateMany${n}`,parameters:[{name:"filters",in:"query",description:"Filter criteria in JSON format (required)",required:!0,schema:{type:"string"}}],requestBody:{description:`Partial ${e} data to update`,required:!0,content:{"application/json":{schema:{$ref:(0,swagger_router_helpers_1.getSchemaRef)(`UpdateMany${n}`,s)}}}},responses:{200:{description:`${r} updated successfully`,content:{"application/json":{schema:{type:"object",properties:{count:{type:"integer",description:"Number of records updated"}}}}}},400:{description:"Invalid input data or missing filter criteria"},401:{description:"Authentication required"},403:{description:"Insufficient permissions"}},security:[{BearerAuth:[]}]}}if((0,base_router_helpers_1.isEndpointDisabled)(o,"deleteMany")||(i[`/api/${t}/many`]||(i[`/api/${t}/many`]={}),i[`/api/${t}/many`].delete={tags:[r],summary:`Delete multiple ${r}`,description:`Deletes multiple ${r} records that match the specified filter criteria`,operationId:`deleteMany${n}`,parameters:[{name:"filters",in:"query",description:"Filter criteria in JSON format (required)",required:!0,schema:{type:"string"}}],responses:{200:{description:`${r} deleted successfully`,content:{"application/json":{schema:{type:"object",properties:{count:{type:"integer",description:"Number of records deleted"}}}}}},400:{description:"Missing filter criteria"},401:{description:"Authentication required"},403:{description:"Insufficient permissions"}},security:[{BearerAuth:[]}]}),!(0,base_router_helpers_1.isEndpointDisabled)(o,"findOne")){const s=await d("findOne");i[`/api/${t}/{id}`]={get:{tags:[r],summary:`Get ${e} by ID`,description:`Retrieves a single ${e} record by its unique identifier`,operationId:`find${n}ById`,parameters:[{name:"id",in:"path",description:`Unique identifier of the ${e}`,required:!0,schema:{type:"string"}}],responses:{200:{description:`${e} retrieved successfully`,content:{"application/json":{schema:{$ref:(0,swagger_router_helpers_1.getSchemaRef)(`FindOne${n}`,s)}}}},401:{description:"Authentication required"},403:{description:"Insufficient permissions"},404:{description:`${e} not found`}},security:[{BearerAuth:[]}]}}}if(!(0,base_router_helpers_1.isEndpointDisabled)(o,"updateOne")){i[`/api/${t}/{id}`]||(i[`/api/${t}/{id}`]={});const s=await d("update");i[`/api/${t}/{id}`].patch={tags:[r],summary:`Update ${e} by ID`,description:`Updates a single ${e} record by its unique identifier`,operationId:`update${n}`,parameters:[{name:"id",in:"path",description:`Unique identifier of the ${e}`,required:!0,schema:{type:"string"}}],requestBody:{description:`Partial ${e} data to update`,required:!0,content:{"application/json":{schema:{$ref:(0,swagger_router_helpers_1.getSchemaRef)(`Update${n}`,s)}}}},responses:{200:{description:`${e} updated successfully`,content:{"application/json":{schema:{$ref:(0,swagger_router_helpers_1.getSchemaRef)(`${n}`,s)}}}},400:{description:"Invalid input data provided"},401:{description:"Authentication required"},403:{description:"Insufficient permissions"},404:{description:`${e} not found`}},security:[{BearerAuth:[]}]}}(0,base_router_helpers_1.isEndpointDisabled)(o,"deleteOne")||(i[`/api/${t}/{id}`]||(i[`/api/${t}/{id}`]={}),i[`/api/${t}/{id}`].delete={tags:[r],summary:`Delete ${e} by ID`,description:`Permanently deletes a single ${e} record by its unique identifier`,operationId:`delete${n}`,parameters:[{name:"id",in:"path",description:`Unique identifier of the ${e}`,required:!0,schema:{type:"string"}}],responses:{204:{description:`${e} deleted successfully`},401:{description:"Authentication required"},403:{description:"Insufficient permissions"},404:{description:`${e} not found`}},security:[{BearerAuth:[]}]})}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var __importDefault=function(c){return c&&c.__esModule?c:{default:c}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=generatePrismaModelParentRoutesPaths;const pluralize_1=__importDefault(require("pluralize")),utils_1=require("../../../../../../exports/utils"),swagger_router_helpers_1=require("../../swagger.router.helpers"),models_helpers_1=require("../../../../../../utils/helpers/models.helpers"),models_helpers_2=require("../../../../../../utils/helpers/models.helpers");async function generatePrismaModelParentRoutesPaths(c,r,m){const $=(0,utils_1.kebabCase)(c),n=pluralize_1.default.plural($),o=(0,utils_1.pascalCase)(c),i=(0,swagger_router_helpers_1.kebabToHuman)($),t=pluralize_1.default.plural(i),f=(await(0,models_helpers_1.importPrismaModelModules)(c,m))?.router?.config;if(f?.disable===!0||!f?.parent)return;const d=f.parent.model,s=pluralize_1.default.plural((0,utils_1.kebabCase)(d)),e=(0,swagger_router_helpers_1.kebabToHuman)((0,utils_1.kebabCase)(d)),p=a=>{const u=f?.parent?.endpoints;return!u||u==="*"?!0:Array.isArray(u)?u.includes(a):!1},l=async a=>{const u=m.swagger?.mode;if(m.swagger?.strict)return u||"prisma";const y=a;return await(0,models_helpers_2.localValidatorFileExists)(y,c,m)&&u||"prisma"};if(p("createOne")){const a=await l("create");r[`/api/${s}/{id}/${n}`]={post:{tags:[t],summary:`Create ${i} for ${e}`,description:`Creates a new ${i} record associated with the specified ${e}`,operationId:`create${o}For${(0,utils_1.pascalCase)(d)}`,parameters:[{name:"id",in:"path",description:`Unique identifier of the ${e}`,required:!0,schema:{type:"string"}}],requestBody:{description:`${i} data to create`,required:!0,content:{"application/json":{schema:{$ref:(0,swagger_router_helpers_1.getSchemaRef)(`Create${o}`,a)}}}},responses:{201:{description:`${i} created successfully`,content:{"application/json":{schema:{$ref:(0,swagger_router_helpers_1.getSchemaRef)(`${o}`,a)}}}},400:{description:"Invalid input data provided"},401:{description:"Authentication required"},403:{description:"Insufficient permissions"},404:{description:`${e} not found`}},security:[{BearerAuth:[]}]}}}if(p("findMany")){r[`/api/${s}/{id}/${n}`]||(r[`/api/${s}/{id}/${n}`]={});const a=await l("findMany");r[`/api/${s}/{id}/${n}`].get={tags:[t],summary:`Get ${t} for ${e}`,description:`Retrieves all ${t} associated with the specified ${e}`,operationId:`get${pluralize_1.default.plural(o)}For${(0,utils_1.pascalCase)(d)}`,parameters:[{name:"id",in:"path",description:`Unique identifier of the ${e}`,required:!0,schema:{type:"string"}},{name:"filters",in:"query",description:"Additional filters criteria in JSON format",schema:{type:"string"}},{name:"sort",in:"query",description:"Sort field (prefix with '-' for descending order)",schema:{type:"string"}},{name:"page",in:"query",description:"Page number (starts from 1)",schema:{type:"integer",minimum:1}},{name:"limit",in:"query",description:"Number of items per page",schema:{type:"integer",minimum:1,maximum:100}},{name:"fields",in:"query",description:"Comma-separated list of fields to include in response",schema:{type:"string"}}],responses:{200:{description:`List of ${t} retrieved successfully`,content:{"application/json":{schema:{type:"object",properties:{total:{type:"integer",description:"Total number of records matching the criteria"},results:{type:"integer",description:"Number of records returned in current page"},data:{type:"array",items:{$ref:(0,swagger_router_helpers_1.getSchemaRef)(`FindMany${o}`,a)}}}}}}},401:{description:"Authentication required"},403:{description:"Insufficient permissions"},404:{description:`${e} not found`}},security:[{BearerAuth:[]}]}}if(p("createMany")){const a=await l("createMany");r[`/api/${s}/{id}/${n}/many`]={post:{tags:[t],summary:`Create multiple ${t} for ${e}`,description:`Creates multiple ${t} records associated with the specified ${e}`,operationId:`createMany${o}For${(0,utils_1.pascalCase)(d)}`,parameters:[{name:"id",in:"path",description:`Unique identifier of the ${e}`,required:!0,schema:{type:"string"}}],requestBody:{description:`Array of ${i} data to create`,required:!0,content:{"application/json":{schema:{type:"array",items:{$ref:(0,swagger_router_helpers_1.getSchemaRef)(`CreateMany${o}`,a)}}}}},responses:{201:{description:`${t} created successfully`,content:{"application/json":{schema:{type:"object",properties:{count:{type:"integer",description:"Number of records created"}}}}}},400:{description:"Invalid input data provided"},401:{description:"Authentication required"},403:{description:"Insufficient permissions"},404:{description:`${e} not found`}},security:[{BearerAuth:[]}]}}}if(p("updateMany")){r[`/api/${s}/{id}/${n}/many`]||(r[`/api/${s}/{id}/${n}/many`]={});const a=await l("updateMany");r[`/api/${s}/{id}/${n}/many`].patch={tags:[t],summary:`Update multiple ${t} for ${e}`,description:`Updates multiple ${t} records associated with the specified ${e}`,operationId:`updateMany${o}For${(0,utils_1.pascalCase)(d)}`,parameters:[{name:"id",in:"path",description:`Unique identifier of the ${e}`,required:!0,schema:{type:"string"}},{name:"filters",in:"query",description:"Additional filters criteria in JSON format",schema:{type:"string"}}],requestBody:{description:`Partial ${i} data to update`,required:!0,content:{"application/json":{schema:{$ref:(0,swagger_router_helpers_1.getSchemaRef)(`UpdateMany${o}`,a)}}}},responses:{200:{description:`${t} updated successfully`,content:{"application/json":{schema:{type:"object",properties:{count:{type:"integer",description:"Number of records updated"}}}}}},400:{description:"Invalid input data provided"},401:{description:"Authentication required"},403:{description:"Insufficient permissions"},404:{description:`${e} not found`}},security:[{BearerAuth:[]}]}}if(p("deleteMany")&&(r[`/api/${s}/{id}/${n}/many`]||(r[`/api/${s}/{id}/${n}/many`]={}),r[`/api/${s}/{id}/${n}/many`].delete={tags:[t],summary:`Delete multiple ${t} for ${e}`,description:`Deletes multiple ${t} records associated with the specified ${e}`,operationId:`deleteMany${o}For${(0,utils_1.pascalCase)(d)}`,parameters:[{name:"id",in:"path",description:`Unique identifier of the ${e}`,required:!0,schema:{type:"string"}},{name:"filters",in:"query",description:"Additional filters criteria in JSON format",schema:{type:"string"}}],responses:{200:{description:`${t} deleted successfully`,content:{"application/json":{schema:{type:"object",properties:{count:{type:"integer",description:"Number of records deleted"}}}}}},400:{description:"Missing filter criteria"},401:{description:"Authentication required"},403:{description:"Insufficient permissions"},404:{description:`${e} not found`}},security:[{BearerAuth:[]}]}),p("findOne")){const a=await l("findOne");r[`/api/${s}/{id}/${n}/{childId}`]={get:{tags:[t],summary:`Get ${i} by ID for ${e}`,description:`Retrieves a single ${i} record by its unique identifier associated with the specified ${e}`,operationId:`get${o}ByIdFor${(0,utils_1.pascalCase)(d)}`,parameters:[{name:"id",in:"path",description:`Unique identifier of the ${e}`,required:!0,schema:{type:"string"}},{name:"childId",in:"path",description:`Unique identifier of the ${i}`,required:!0,schema:{type:"string"}}],responses:{200:{description:`${i} retrieved successfully`,content:{"application/json":{schema:{$ref:(0,swagger_router_helpers_1.getSchemaRef)(`FindOne${o}`,a)}}}},401:{description:"Authentication required"},403:{description:"Insufficient permissions"},404:{description:`${i} or ${e} not found`}},security:[{BearerAuth:[]}]}}}if(p("updateOne")){r[`/api/${s}/{id}/${n}/{childId}`]||(r[`/api/${s}/{id}/${n}/{childId}`]={});const a=await l("update");r[`/api/${s}/{id}/${n}/{childId}`].patch={tags:[t],summary:`Update ${i} by ID for ${e}`,description:`Updates a single ${i} record by its unique identifier associated with the specified ${e}`,operationId:`update${o}ByIdFor${(0,utils_1.pascalCase)(d)}`,parameters:[{name:"id",in:"path",description:`Unique identifier of the ${e}`,required:!0,schema:{type:"string"}},{name:"childId",in:"path",description:`Unique identifier of the ${i}`,required:!0,schema:{type:"string"}}],requestBody:{description:`Partial ${i} data to update`,required:!0,content:{"application/json":{schema:{$ref:(0,swagger_router_helpers_1.getSchemaRef)(`Update${o}`,a)}}}},responses:{200:{description:`${i} updated successfully`,content:{"application/json":{schema:{$ref:(0,swagger_router_helpers_1.getSchemaRef)(`${o}`,a)}}}},400:{description:"Invalid input data provided"},401:{description:"Authentication required"},403:{description:"Insufficient permissions"},404:{description:`${i} or ${e} not found`}},security:[{BearerAuth:[]}]}}p("deleteOne")&&(r[`/api/${s}/{id}/${n}/{childId}`]||(r[`/api/${s}/{id}/${n}/{childId}`]={}),r[`/api/${s}/{id}/${n}/{childId}`].delete={tags:[t],summary:`Delete ${i} by ID for ${e}`,description:`Permanently deletes a single ${i} record by its unique identifier associated with the specified ${e}`,operationId:`delete${o}ByIdFor${(0,utils_1.pascalCase)(d)}`,parameters:[{name:"id",in:"path",description:`Unique identifier of the ${e}`,required:!0,schema:{type:"string"}},{name:"childId",in:"path",description:`Unique identifier of the ${i}`,required:!0,schema:{type:"string"}}],responses:{204:{description:`${i} deleted successfully`},401:{description:"Authentication required"},403:{description:"Insufficient permissions"},404:{description:`${i} or ${e} not found`}},security:[{BearerAuth:[]}]})}
|
|
1
|
+
"use strict";var __importDefault=this&&this.__importDefault||function(c){return c&&c.__esModule?c:{default:c}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=generatePrismaModelParentRoutesPaths;const pluralize_1=__importDefault(require("pluralize")),utils_1=require("../../../../../../exports/utils"),swagger_router_helpers_1=require("../../swagger.router.helpers"),models_helpers_1=require("../../../../../../utils/helpers/models.helpers"),models_helpers_2=require("../../../../../../utils/helpers/models.helpers");async function generatePrismaModelParentRoutesPaths(c,r,m){const $=(0,utils_1.kebabCase)(c),n=pluralize_1.default.plural($),o=(0,utils_1.pascalCase)(c),i=(0,swagger_router_helpers_1.kebabToHuman)($),t=pluralize_1.default.plural(i),f=(await(0,models_helpers_1.importPrismaModelModules)(c,m))?.router?.config;if(f?.disable===!0||!f?.parent)return;const d=f.parent.model,s=pluralize_1.default.plural((0,utils_1.kebabCase)(d)),e=(0,swagger_router_helpers_1.kebabToHuman)((0,utils_1.kebabCase)(d)),p=a=>{const u=f?.parent?.endpoints;return!u||u==="*"?!0:Array.isArray(u)?u.includes(a):!1},l=async a=>{const u=m.swagger?.mode;if(m.swagger?.strict)return u||"prisma";const y=a;return await(0,models_helpers_2.localValidatorFileExists)(y,c,m)&&u||"prisma"};if(p("createOne")){const a=await l("create");r[`/api/${s}/{id}/${n}`]={post:{tags:[t],summary:`Create ${i} for ${e}`,description:`Creates a new ${i} record associated with the specified ${e}`,operationId:`create${o}For${(0,utils_1.pascalCase)(d)}`,parameters:[{name:"id",in:"path",description:`Unique identifier of the ${e}`,required:!0,schema:{type:"string"}}],requestBody:{description:`${i} data to create`,required:!0,content:{"application/json":{schema:{$ref:(0,swagger_router_helpers_1.getSchemaRef)(`Create${o}`,a)}}}},responses:{201:{description:`${i} created successfully`,content:{"application/json":{schema:{$ref:(0,swagger_router_helpers_1.getSchemaRef)(`${o}`,a)}}}},400:{description:"Invalid input data provided"},401:{description:"Authentication required"},403:{description:"Insufficient permissions"},404:{description:`${e} not found`}},security:[{BearerAuth:[]}]}}}if(p("findMany")){r[`/api/${s}/{id}/${n}`]||(r[`/api/${s}/{id}/${n}`]={});const a=await l("findMany");r[`/api/${s}/{id}/${n}`].get={tags:[t],summary:`Get ${t} for ${e}`,description:`Retrieves all ${t} associated with the specified ${e}`,operationId:`get${pluralize_1.default.plural(o)}For${(0,utils_1.pascalCase)(d)}`,parameters:[{name:"id",in:"path",description:`Unique identifier of the ${e}`,required:!0,schema:{type:"string"}},{name:"filters",in:"query",description:"Additional filters criteria in JSON format",schema:{type:"string"}},{name:"sort",in:"query",description:"Sort field (prefix with '-' for descending order)",schema:{type:"string"}},{name:"page",in:"query",description:"Page number (starts from 1)",schema:{type:"integer",minimum:1}},{name:"limit",in:"query",description:"Number of items per page",schema:{type:"integer",minimum:1,maximum:100}},{name:"fields",in:"query",description:"Comma-separated list of fields to include in response",schema:{type:"string"}}],responses:{200:{description:`List of ${t} retrieved successfully`,content:{"application/json":{schema:{type:"object",properties:{total:{type:"integer",description:"Total number of records matching the criteria"},results:{type:"integer",description:"Number of records returned in current page"},data:{type:"array",items:{$ref:(0,swagger_router_helpers_1.getSchemaRef)(`FindMany${o}`,a)}}}}}}},401:{description:"Authentication required"},403:{description:"Insufficient permissions"},404:{description:`${e} not found`}},security:[{BearerAuth:[]}]}}if(p("createMany")){const a=await l("createMany");r[`/api/${s}/{id}/${n}/many`]={post:{tags:[t],summary:`Create multiple ${t} for ${e}`,description:`Creates multiple ${t} records associated with the specified ${e}`,operationId:`createMany${o}For${(0,utils_1.pascalCase)(d)}`,parameters:[{name:"id",in:"path",description:`Unique identifier of the ${e}`,required:!0,schema:{type:"string"}}],requestBody:{description:`Array of ${i} data to create`,required:!0,content:{"application/json":{schema:{type:"array",items:{$ref:(0,swagger_router_helpers_1.getSchemaRef)(`CreateMany${o}`,a)}}}}},responses:{201:{description:`${t} created successfully`,content:{"application/json":{schema:{type:"object",properties:{count:{type:"integer",description:"Number of records created"}}}}}},400:{description:"Invalid input data provided"},401:{description:"Authentication required"},403:{description:"Insufficient permissions"},404:{description:`${e} not found`}},security:[{BearerAuth:[]}]}}}if(p("updateMany")){r[`/api/${s}/{id}/${n}/many`]||(r[`/api/${s}/{id}/${n}/many`]={});const a=await l("updateMany");r[`/api/${s}/{id}/${n}/many`].patch={tags:[t],summary:`Update multiple ${t} for ${e}`,description:`Updates multiple ${t} records associated with the specified ${e}`,operationId:`updateMany${o}For${(0,utils_1.pascalCase)(d)}`,parameters:[{name:"id",in:"path",description:`Unique identifier of the ${e}`,required:!0,schema:{type:"string"}},{name:"filters",in:"query",description:"Additional filters criteria in JSON format",schema:{type:"string"}}],requestBody:{description:`Partial ${i} data to update`,required:!0,content:{"application/json":{schema:{$ref:(0,swagger_router_helpers_1.getSchemaRef)(`UpdateMany${o}`,a)}}}},responses:{200:{description:`${t} updated successfully`,content:{"application/json":{schema:{type:"object",properties:{count:{type:"integer",description:"Number of records updated"}}}}}},400:{description:"Invalid input data provided"},401:{description:"Authentication required"},403:{description:"Insufficient permissions"},404:{description:`${e} not found`}},security:[{BearerAuth:[]}]}}if(p("deleteMany")&&(r[`/api/${s}/{id}/${n}/many`]||(r[`/api/${s}/{id}/${n}/many`]={}),r[`/api/${s}/{id}/${n}/many`].delete={tags:[t],summary:`Delete multiple ${t} for ${e}`,description:`Deletes multiple ${t} records associated with the specified ${e}`,operationId:`deleteMany${o}For${(0,utils_1.pascalCase)(d)}`,parameters:[{name:"id",in:"path",description:`Unique identifier of the ${e}`,required:!0,schema:{type:"string"}},{name:"filters",in:"query",description:"Additional filters criteria in JSON format",schema:{type:"string"}}],responses:{200:{description:`${t} deleted successfully`,content:{"application/json":{schema:{type:"object",properties:{count:{type:"integer",description:"Number of records deleted"}}}}}},400:{description:"Missing filter criteria"},401:{description:"Authentication required"},403:{description:"Insufficient permissions"},404:{description:`${e} not found`}},security:[{BearerAuth:[]}]}),p("findOne")){const a=await l("findOne");r[`/api/${s}/{id}/${n}/{childId}`]={get:{tags:[t],summary:`Get ${i} by ID for ${e}`,description:`Retrieves a single ${i} record by its unique identifier associated with the specified ${e}`,operationId:`get${o}ByIdFor${(0,utils_1.pascalCase)(d)}`,parameters:[{name:"id",in:"path",description:`Unique identifier of the ${e}`,required:!0,schema:{type:"string"}},{name:"childId",in:"path",description:`Unique identifier of the ${i}`,required:!0,schema:{type:"string"}}],responses:{200:{description:`${i} retrieved successfully`,content:{"application/json":{schema:{$ref:(0,swagger_router_helpers_1.getSchemaRef)(`FindOne${o}`,a)}}}},401:{description:"Authentication required"},403:{description:"Insufficient permissions"},404:{description:`${i} or ${e} not found`}},security:[{BearerAuth:[]}]}}}if(p("updateOne")){r[`/api/${s}/{id}/${n}/{childId}`]||(r[`/api/${s}/{id}/${n}/{childId}`]={});const a=await l("update");r[`/api/${s}/{id}/${n}/{childId}`].patch={tags:[t],summary:`Update ${i} by ID for ${e}`,description:`Updates a single ${i} record by its unique identifier associated with the specified ${e}`,operationId:`update${o}ByIdFor${(0,utils_1.pascalCase)(d)}`,parameters:[{name:"id",in:"path",description:`Unique identifier of the ${e}`,required:!0,schema:{type:"string"}},{name:"childId",in:"path",description:`Unique identifier of the ${i}`,required:!0,schema:{type:"string"}}],requestBody:{description:`Partial ${i} data to update`,required:!0,content:{"application/json":{schema:{$ref:(0,swagger_router_helpers_1.getSchemaRef)(`Update${o}`,a)}}}},responses:{200:{description:`${i} updated successfully`,content:{"application/json":{schema:{$ref:(0,swagger_router_helpers_1.getSchemaRef)(`${o}`,a)}}}},400:{description:"Invalid input data provided"},401:{description:"Authentication required"},403:{description:"Insufficient permissions"},404:{description:`${i} or ${e} not found`}},security:[{BearerAuth:[]}]}}p("deleteOne")&&(r[`/api/${s}/{id}/${n}/{childId}`]||(r[`/api/${s}/{id}/${n}/{childId}`]={}),r[`/api/${s}/{id}/${n}/{childId}`].delete={tags:[t],summary:`Delete ${i} by ID for ${e}`,description:`Permanently deletes a single ${i} record by its unique identifier associated with the specified ${e}`,operationId:`delete${o}ByIdFor${(0,utils_1.pascalCase)(d)}`,parameters:[{name:"id",in:"path",description:`Unique identifier of the ${e}`,required:!0,schema:{type:"string"}},{name:"childId",in:"path",description:`Unique identifier of the ${i}`,required:!0,schema:{type:"string"}}],responses:{204:{description:`${i} deleted successfully`},401:{description:"Authentication required"},403:{description:"Insufficient permissions"},404:{description:`${i} or ${e} not found`}},security:[{BearerAuth:[]}]})}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var __importDefault=function(m){return m&&m.__esModule?m:{default:m}};Object.defineProperty(exports,"__esModule",{value:!0});const enhaced_prisma_json_schema_generator_1=__importDefault(require("../../../../utils/prisma/enhaced-prisma-json-schema-generator"));class MissingJsonSchemasGenerator{extractModelNameFromSchemaRef(e){const t=e.match(/#\/components\/schemas\/(?:Create|Update|UpdateMany|FindOne|FindMany|CreateMany)?(.+?)(?:ModelSchema|Schema)$/);if(t){let n=t[1];return n.toLowerCase()==="auth"||n.toLowerCase()==="login"||n.toLowerCase()==="signup"||n.toLowerCase()==="getme"||n.toLowerCase()==="updateme"||n.toLowerCase()==="updatepassword"?"Auth":n}return null}extractActionFromOperationId(e){return e?e.includes("createMany")?"createMany":e.includes("updateMany")?"updateMany":e.includes("deleteMany")?"deleteMany":e.includes("updateMe")?"updateMe":e.includes("updatePassword")?"updatePassword":e.startsWith("create")?"createOne":e.startsWith("update")?"updateOne":e.startsWith("delete")?"deleteOne":e.startsWith("find")&&(e.includes("ById")||e.includes("One"))?"findOne":e.startsWith("find")?"findMany":e.includes("login")||e==="login"?"login":e.includes("signup")||e==="signup"?"signup":e.includes("getMe")||e==="getMe"?"getMe":e.includes("updateMe")||e==="updateMe"?"updateMe":e.includes("updatePassword")||e==="updatePassword"?"updatePassword":null:null}extractModelNameFromOperationId(e){if(!e)return null;let t=e.replace(/^(create|update|delete|find)Many/i,"").replace(/^(create|update|delete|find)/i,"").replace(/ById$/i,"").replace(/s$/,"");return e.toLowerCase().includes("login")||e.toLowerCase().includes("signup")||e.toLowerCase().includes("getme")||e.toLowerCase().includes("updateme")||e.toLowerCase().includes("updatepassword")?"Auth":t||null}extractSchemaRefsWithContext(e,t=new Map,n={}){return typeof e!="object"||e===null?t:Array.isArray(e)?(e.forEach(c=>this.extractSchemaRefsWithContext(c,t,n)),t):(e.operationId&&typeof e.operationId=="string"&&(n={...n,operationId:e.operationId}),e.$ref&&typeof e.$ref=="string"&&t.set(e.$ref,{...n}),Object.values(e).forEach(c=>{this.extractSchemaRefsWithContext(c,t,n)}),t)}extractPathSchemaRefs(e){const t=new Map;return Object.entries(e).forEach(([n,c])=>{c&&Object.entries(c).forEach(([f,u])=>{if(!u||typeof u!="object")return;const o={method:f,path:n,operationId:u.operationId};this.extractSchemaRefsWithContext(u,t,o)})}),t}getSchemaNameFromRef(e){const t=e.match(/#\/components\/schemas\/(.+)$/);return t?t[1]:null}async generateMissingJsonSchemas(e,t,n){const c={},f=this.extractPathSchemaRefs(e),u=new Map;for(const[o,d]of f){const i=this.getSchemaNameFromRef(o);if(!i||t[i]||!i.includes("ModelSchema")&&!i.includes("Schema"))continue;let s=null,a=null;d.operationId&&(s=this.extractModelNameFromOperationId(d.operationId),a=this.extractActionFromOperationId(d.operationId)),(!s||!a)&&(s=s||this.extractModelNameFromSchemaRef(o),a=a||this.extractActionFromSchemaRef(o)),s&&a&&(u.has(s)||u.set(s,new Set),u.get(s).add(a))}for(const[o,d]of u)try{const i=Array.from(d),s=await enhaced_prisma_json_schema_generator_1.default.generateModelSchemas({modelName:o,arkosConfig:n,schemasToGenerate:i});Object.entries(s).forEach(([a,l])=>{let r=a;["auth","login","me","password","me"].includes(o.toLowerCase())?a==="LoginSchema"?r="LoginSchema":a==="SignupSchema"?r="SignupSchema":a==="GetMeSchema"?r="GetMeSchema":a==="UpdateMeSchema"?r="UpdateMeSchema":a==="UpdatePasswordSchema"&&(r="UpdatePasswordSchema"):a.includes("ModelSchema")?r=a:r=`${a}ModelSchema`,c[r]=l})}catch{}return c}extractActionFromSchemaRef(e){return e.includes("CreateMany")?"createMany":e.includes("Create")?"createOne":e.includes("UpdateMany")?"updateMany":e.includes("Update")&&!e.includes("UpdateMe")&&!e.includes("UpdatePassword")?"updateOne":e.includes("FindMany")?"findMany":e.includes("FindOne")?"findOne":e.includes("Login")?"login":e.includes("Signup")?"signup":e.includes("GetMe")?"getMe":e.includes("UpdateMe")?"updateMe":e.includes("UpdatePassword")?"updatePassword":null}analyzeMissingSchemas(e,t){const n=this.extractPathSchemaRefs(e),c=[],f=[],u=[],o=[];for(const[d,i]of n){const s={ref:d,context:i};c.push(s);const a=this.getSchemaNameFromRef(d);if(a)if(t[a])u.push(s);else{f.push(s);let l=null,r=null;i.operationId&&(l=this.extractModelNameFromOperationId(i.operationId),r=this.extractActionFromOperationId(i.operationId)),(!l||!r)&&(l=l||this.extractModelNameFromSchemaRef(d),r=r||this.extractActionFromSchemaRef(d)),l&&r&&o.push({model:l,action:r,ref:d,operationId:i.operationId})}}return{allRefs:c,missingRefs:f,existingRefs:u,modelActions:o}}}const missingJsonSchemaGenerator=new MissingJsonSchemasGenerator;exports.default=missingJsonSchemaGenerator;
|
|
1
|
+
"use strict";var __importDefault=this&&this.__importDefault||function(m){return m&&m.__esModule?m:{default:m}};Object.defineProperty(exports,"__esModule",{value:!0});const enhaced_prisma_json_schema_generator_1=__importDefault(require("../../../../utils/prisma/enhaced-prisma-json-schema-generator"));class MissingJsonSchemasGenerator{extractModelNameFromSchemaRef(e){const t=e.match(/#\/components\/schemas\/(?:Create|Update|UpdateMany|FindOne|FindMany|CreateMany)?(.+?)(?:ModelSchema|Schema)$/);if(t){let n=t[1];return n.toLowerCase()==="auth"||n.toLowerCase()==="login"||n.toLowerCase()==="signup"||n.toLowerCase()==="getme"||n.toLowerCase()==="updateme"||n.toLowerCase()==="updatepassword"?"Auth":n}return null}extractActionFromOperationId(e){return e?e.includes("createMany")?"createMany":e.includes("updateMany")?"updateMany":e.includes("deleteMany")?"deleteMany":e.includes("updateMe")?"updateMe":e.includes("updatePassword")?"updatePassword":e.startsWith("create")?"createOne":e.startsWith("update")?"updateOne":e.startsWith("delete")?"deleteOne":e.startsWith("find")&&(e.includes("ById")||e.includes("One"))?"findOne":e.startsWith("find")?"findMany":e.includes("login")||e==="login"?"login":e.includes("signup")||e==="signup"?"signup":e.includes("getMe")||e==="getMe"?"getMe":e.includes("updateMe")||e==="updateMe"?"updateMe":e.includes("updatePassword")||e==="updatePassword"?"updatePassword":null:null}extractModelNameFromOperationId(e){if(!e)return null;let t=e.replace(/^(create|update|delete|find)Many/i,"").replace(/^(create|update|delete|find)/i,"").replace(/ById$/i,"").replace(/s$/,"");return e.toLowerCase().includes("login")||e.toLowerCase().includes("signup")||e.toLowerCase().includes("getme")||e.toLowerCase().includes("updateme")||e.toLowerCase().includes("updatepassword")?"Auth":t||null}extractSchemaRefsWithContext(e,t=new Map,n={}){return typeof e!="object"||e===null?t:Array.isArray(e)?(e.forEach(c=>this.extractSchemaRefsWithContext(c,t,n)),t):(e.operationId&&typeof e.operationId=="string"&&(n={...n,operationId:e.operationId}),e.$ref&&typeof e.$ref=="string"&&t.set(e.$ref,{...n}),Object.values(e).forEach(c=>{this.extractSchemaRefsWithContext(c,t,n)}),t)}extractPathSchemaRefs(e){const t=new Map;return Object.entries(e).forEach(([n,c])=>{c&&Object.entries(c).forEach(([f,u])=>{if(!u||typeof u!="object")return;const o={method:f,path:n,operationId:u.operationId};this.extractSchemaRefsWithContext(u,t,o)})}),t}getSchemaNameFromRef(e){const t=e.match(/#\/components\/schemas\/(.+)$/);return t?t[1]:null}async generateMissingJsonSchemas(e,t,n){const c={},f=this.extractPathSchemaRefs(e),u=new Map;for(const[o,d]of f){const i=this.getSchemaNameFromRef(o);if(!i||t[i]||!i.includes("ModelSchema")&&!i.includes("Schema"))continue;let s=null,a=null;d.operationId&&(s=this.extractModelNameFromOperationId(d.operationId),a=this.extractActionFromOperationId(d.operationId)),(!s||!a)&&(s=s||this.extractModelNameFromSchemaRef(o),a=a||this.extractActionFromSchemaRef(o)),s&&a&&(u.has(s)||u.set(s,new Set),u.get(s).add(a))}for(const[o,d]of u)try{const i=Array.from(d),s=await enhaced_prisma_json_schema_generator_1.default.generateModelSchemas({modelName:o,arkosConfig:n,schemasToGenerate:i});Object.entries(s).forEach(([a,l])=>{let r=a;["auth","login","me","password","me"].includes(o.toLowerCase())?a==="LoginSchema"?r="LoginSchema":a==="SignupSchema"?r="SignupSchema":a==="GetMeSchema"?r="GetMeSchema":a==="UpdateMeSchema"?r="UpdateMeSchema":a==="UpdatePasswordSchema"&&(r="UpdatePasswordSchema"):a.includes("ModelSchema")?r=a:r=`${a}ModelSchema`,c[r]=l})}catch{}return c}extractActionFromSchemaRef(e){return e.includes("CreateMany")?"createMany":e.includes("Create")?"createOne":e.includes("UpdateMany")?"updateMany":e.includes("Update")&&!e.includes("UpdateMe")&&!e.includes("UpdatePassword")?"updateOne":e.includes("FindMany")?"findMany":e.includes("FindOne")?"findOne":e.includes("Login")?"login":e.includes("Signup")?"signup":e.includes("GetMe")?"getMe":e.includes("UpdateMe")?"updateMe":e.includes("UpdatePassword")?"updatePassword":null}analyzeMissingSchemas(e,t){const n=this.extractPathSchemaRefs(e),c=[],f=[],u=[],o=[];for(const[d,i]of n){const s={ref:d,context:i};c.push(s);const a=this.getSchemaNameFromRef(d);if(a)if(t[a])u.push(s);else{f.push(s);let l=null,r=null;i.operationId&&(l=this.extractModelNameFromOperationId(i.operationId),r=this.extractActionFromOperationId(i.operationId)),(!l||!r)&&(l=l||this.extractModelNameFromSchemaRef(d),r=r||this.extractActionFromSchemaRef(d)),l&&r&&o.push({model:l,action:r,ref:d,operationId:i.operationId})}}return{allRefs:c,missingRefs:f,existingRefs:u,modelActions:o}}}const missingJsonSchemaGenerator=new MissingJsonSchemasGenerator;exports.default=missingJsonSchemaGenerator;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var __importDefault=function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.getOpenAPIJsonSchemasByConfigMode=getOpenAPIJsonSchemasByConfigMode,exports.getCorrectJsonSchemaName=getCorrectJsonSchemaName,exports.kebabToHuman=kebabToHuman,exports.getSchemaRef=getSchemaRef,exports.generatePathsForModels=generatePathsForModels;const models_helpers_1=require("../../../../utils/helpers/models.helpers"),utils_1=require("../../../../exports/utils"),get_system_json_schema_paths_1=require("./get-system-json-schema-paths"),get_authentication_json_schema_paths_1=__importDefault(require("./get-authentication-json-schema-paths")),generate_zod_json_schemas_1=__importDefault(require("./json-schema-generators/generate-zod-json-schemas")),generate_class_validator_json_schemas_1=require("./json-schema-generators/generate-class-validator-json-schemas"),generate_prisma_json_schemas_1=require("./json-schema-generators/generate-prisma-json-schemas"),generate_prisma_model_main_routes_paths_1=require("./json-schema-generators/prisma-models/generate-prisma-model-main-routes-paths"),generate_prisma_model_parent_routes_paths_1=__importDefault(require("./json-schema-generators/prisma-models/generate-prisma-model-parent-routes-paths")),sheu_1=__importDefault(require("../../../../utils/sheu"));async function getOpenAPIJsonSchemasByConfigMode(e){switch(e?.swagger.mode){case"prisma":return await(0,generate_prisma_json_schemas_1.generatePrismaJsonSchemas)(e);case"class-validator":return await(0,generate_class_validator_json_schemas_1.generateClassValidatorJsonSchemas)();case"zod":return await(0,generate_zod_json_schemas_1.default)();default:throw Error("Unknown mode for auto documentation, supported values are prisma, class-validator, zod or json-schemas")}}function getCorrectJsonSchemaName(e,t,a){const s=(0,utils_1.pascalCase)(t);return`${{model:s,create:`Create${s}`,createMany:`CreateMany${s}`,findOne:`FindOne${s}`,findMany:`FindMany${s}`,update:`Update${s}`,updateMany:`UpdateMany${s}`,query:`Query${s}`,login:"Login",signup:"Signup",updateMe:"UpdateMe",updatePassword:"UpdatePassword"}[e]??(0,utils_1.pascalCase)(e)}${a}`}function kebabToHuman(e){return e.split("-").map(t=>t.charAt(0).toUpperCase()+t.slice(1)).join(" ")}function getSchemaRef(e,t){if(e=(0,utils_1.pascalCase)(e),["getme","updateme","login","signup","updatepassword","password","me"].some(r=>r===e.toLowerCase())&&t==="prisma")return`#/components/schemas/${e}Schema`;switch(t){case"prisma":return`#/components/schemas/${e}ModelSchema`;case"zod":return`#/components/schemas/${e}Schema`;case"class-validator":return`#/components/schemas/${e}Dto`;default:return sheu_1.default.error(`Unknown Arkos.js swagger documentation provided, available options are prisma, zod or class-validator but received ${t}`),""}}async function generatePathsForModels(e){if(!e?.swagger)return{};let a={};const s=(0,models_helpers_1.getModels)();for(const r of s)await(0,generate_prisma_model_main_routes_paths_1.generatePrismaModelMainRoutesPaths)(r,a,e),await(0,generate_prisma_model_parent_routes_paths_1.default)(r,a,e);return a={...a,...(0,get_system_json_schema_paths_1.getSystemJsonSchemaPaths)()},a={...a,...await(0,get_authentication_json_schema_paths_1.default)(e)||{}},a}
|
|
1
|
+
"use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.getOpenAPIJsonSchemasByConfigMode=getOpenAPIJsonSchemasByConfigMode,exports.getCorrectJsonSchemaName=getCorrectJsonSchemaName,exports.kebabToHuman=kebabToHuman,exports.getSchemaRef=getSchemaRef,exports.generatePathsForModels=generatePathsForModels;const models_helpers_1=require("../../../../utils/helpers/models.helpers"),utils_1=require("../../../../exports/utils"),get_system_json_schema_paths_1=require("./get-system-json-schema-paths"),get_authentication_json_schema_paths_1=__importDefault(require("./get-authentication-json-schema-paths")),generate_zod_json_schemas_1=__importDefault(require("./json-schema-generators/generate-zod-json-schemas")),generate_class_validator_json_schemas_1=require("./json-schema-generators/generate-class-validator-json-schemas"),generate_prisma_json_schemas_1=require("./json-schema-generators/generate-prisma-json-schemas"),generate_prisma_model_main_routes_paths_1=require("./json-schema-generators/prisma-models/generate-prisma-model-main-routes-paths"),generate_prisma_model_parent_routes_paths_1=__importDefault(require("./json-schema-generators/prisma-models/generate-prisma-model-parent-routes-paths")),sheu_1=__importDefault(require("../../../../utils/sheu"));async function getOpenAPIJsonSchemasByConfigMode(e){switch(e?.swagger.mode){case"prisma":return await(0,generate_prisma_json_schemas_1.generatePrismaJsonSchemas)(e);case"class-validator":return await(0,generate_class_validator_json_schemas_1.generateClassValidatorJsonSchemas)();case"zod":return await(0,generate_zod_json_schemas_1.default)();default:throw Error("Unknown mode for auto documentation, supported values are prisma, class-validator, zod or json-schemas")}}function getCorrectJsonSchemaName(e,t,a){const s=(0,utils_1.pascalCase)(t);return`${{model:s,create:`Create${s}`,createMany:`CreateMany${s}`,findOne:`FindOne${s}`,findMany:`FindMany${s}`,update:`Update${s}`,updateMany:`UpdateMany${s}`,query:`Query${s}`,login:"Login",signup:"Signup",updateMe:"UpdateMe",updatePassword:"UpdatePassword"}[e]??(0,utils_1.pascalCase)(e)}${a}`}function kebabToHuman(e){return e.split("-").map(t=>t.charAt(0).toUpperCase()+t.slice(1)).join(" ")}function getSchemaRef(e,t){if(e=(0,utils_1.pascalCase)(e),["getme","updateme","login","signup","updatepassword","password","me"].some(r=>r===e.toLowerCase())&&t==="prisma")return`#/components/schemas/${e}Schema`;switch(t){case"prisma":return`#/components/schemas/${e}ModelSchema`;case"zod":return`#/components/schemas/${e}Schema`;case"class-validator":return`#/components/schemas/${e}Dto`;default:return sheu_1.default.error(`Unknown Arkos.js swagger documentation provided, available options are prisma, zod or class-validator but received ${t}`),""}}async function generatePathsForModels(e){if(!e?.swagger)return{};let a={};const s=(0,models_helpers_1.getModels)();for(const r of s)await(0,generate_prisma_model_main_routes_paths_1.generatePrismaModelMainRoutesPaths)(r,a,e),await(0,generate_prisma_model_parent_routes_paths_1.default)(r,a,e);return a={...a,...(0,get_system_json_schema_paths_1.getSystemJsonSchemaPaths)()},a={...a,...await(0,get_authentication_json_schema_paths_1.default)(e)||{}},a}
|
package/dist/cjs/paths.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var __importDefault=function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.ROOT_DIR=void 0;const path_1=__importDefault(require("path"));exports.ROOT_DIR=path_1.default.resolve(__dirname,"../..");
|
|
1
|
+
"use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.ROOT_DIR=void 0;const path_1=__importDefault(require("path"));exports.ROOT_DIR=path_1.default.resolve(__dirname,"../..");
|
package/dist/cjs/server.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";var __importDefault=function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.server=exports._arkosConfig=void 0,exports.terminateApplicationRunningProcessAndServer=terminateApplicationRunningProcessAndServer,exports.getArkosConfig=getArkosConfig,exports.getExpressApp=getExpressApp,exports.initApp=initApp;const app_1=require("./app"),deepmerge_helper_1=__importDefault(require("./utils/helpers/deepmerge.helper")),http_1=__importDefault(require("http")),models_helpers_1=require("./utils/helpers/models.helpers"),sheu_1=__importDefault(require("./utils/sheu")),text_helpers_1=require("./utils/helpers/text.helpers"),port_and_host_allocator_1=__importDefault(require("./utils/features/port-and-host-allocator"));process.on("uncaughtException",e=>{e.message.includes("EPIPE")||(sheu_1.default.error(`
|
|
1
|
+
"use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.server=exports._arkosConfig=void 0,exports.terminateApplicationRunningProcessAndServer=terminateApplicationRunningProcessAndServer,exports.getArkosConfig=getArkosConfig,exports.getExpressApp=getExpressApp,exports.initApp=initApp;const app_1=require("./app"),deepmerge_helper_1=__importDefault(require("./utils/helpers/deepmerge.helper")),http_1=__importDefault(require("http")),models_helpers_1=require("./utils/helpers/models.helpers"),sheu_1=__importDefault(require("./utils/sheu")),text_helpers_1=require("./utils/helpers/text.helpers"),port_and_host_allocator_1=__importDefault(require("./utils/features/port-and-host-allocator"));process.on("uncaughtException",e=>{e.message.includes("EPIPE")||(sheu_1.default.error(`
|
|
2
2
|
UNCAUGHT EXCEPTION! SHUTTING DOWN...
|
|
3
3
|
`,{timestamp:!0,bold:!0}),console.error(e.name,e.message),console.error(e),process.exit(1))});let server,_app;exports._arkosConfig={welcomeMessage:"Welcome to our RESTful API generated by Arkos, find out more about Arkos at www.arkosjs.com",port:Number(process.env.CLI_PORT)||Number(process.env.PORT)||8e3,host:process.env.CLI_HOST||process.env.HOST||"localhost",fileUpload:{baseUploadDir:"uploads",baseRoute:"/api/uploads"},available:!1};async function initApp(e={}){exports._arkosConfig.available=!0;const r=await port_and_host_allocator_1.default.getHostAndAvailablePort(process.env,e);(0,models_helpers_1.initializePrismaModels)(),exports._arkosConfig=(0,deepmerge_helper_1.default)(exports._arkosConfig,e),_app=await(0,app_1.bootstrap)(exports._arkosConfig);const t=new Date().toTimeString().split(" ")[0];return"port"in e&&e?.port!==void 0||!("port"in e)?(exports.server=server=http_1.default.createServer(_app),exports._arkosConfig?.configureServer&&await exports._arkosConfig.configureServer(server),server.listen(Number(r?.port),r.host,()=>{const o=`${sheu_1.default.gray(t)} {{server}} waiting on http://${r?.host}:${r?.port}`;sheu_1.default.ready(o.replace("{{server}}",`${(0,text_helpers_1.capitalize)(process.env.NODE_ENV||"development")} server`)),exports._arkosConfig?.swagger?.mode&&sheu_1.default.ready(`${o.replace("{{server}}","Documentation")}${exports._arkosConfig?.swagger?.endpoint||"/api/docs"}`)})):sheu_1.default.warn(`${sheu_1.default.gray(t)} Port set to undefined, hence no internal http server was setup.`),_app}process.on("unhandledRejection",e=>{sheu_1.default.error(`
|
|
4
4
|
UNHANDLED REJECTION! SHUTTING DOWN...
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";var __importDefault=function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.buildCommand=buildCommand;const path_1=__importDefault(require("path")),fs_1=__importDefault(require("fs")),child_process_1=require("child_process"),fs_helpers_1=require("../helpers/fs.helpers"),dotenv_helpers_1=require("../dotenv.helpers"),cli_helpers_1=require("./utils/cli.helpers"),global_helpers_1=require("../helpers/global.helpers"),sheu_1=__importDefault(require("../sheu")),BUILD_DIR=".build",MODULE_TYPES=["cjs","esm"];function buildCommand(e={}){const s=(0,fs_helpers_1.getUserFileExtension)();process.env.NODE_ENV="production",process.env.NODE_ENV="true";const t=(0,dotenv_helpers_1.loadEnvironmentVariables)(),n=validateModuleType(e.module);try{console.info(` \x1B[1m\x1B[36m Arkos.js ${(0,cli_helpers_1.getVersion)()}\x1B[0m`),console.info(` - Environments: ${(0,fs_helpers_1.fullCleanCwd)(t?.join(", ")||"").replaceAll(`${process.cwd()}/`,"").replaceAll("/","")}`),console.info(`
|
|
1
|
+
"use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.buildCommand=buildCommand;const path_1=__importDefault(require("path")),fs_1=__importDefault(require("fs")),child_process_1=require("child_process"),fs_helpers_1=require("../helpers/fs.helpers"),dotenv_helpers_1=require("../dotenv.helpers"),cli_helpers_1=require("./utils/cli.helpers"),global_helpers_1=require("../helpers/global.helpers"),sheu_1=__importDefault(require("../sheu")),BUILD_DIR=".build",MODULE_TYPES=["cjs","esm"];function buildCommand(e={}){const s=(0,fs_helpers_1.getUserFileExtension)();process.env.NODE_ENV="production",process.env.NODE_ENV="true";const t=(0,dotenv_helpers_1.loadEnvironmentVariables)(),n=validateModuleType(e.module);try{console.info(` \x1B[1m\x1B[36m Arkos.js ${(0,cli_helpers_1.getVersion)()}\x1B[0m`),console.info(` - Environments: ${(0,fs_helpers_1.fullCleanCwd)(t?.join(", ")||"").replaceAll(`${process.cwd()}/`,"").replaceAll("/","")}`),console.info(`
|
|
2
2
|
Creating an optimized production build...`),ensureBuildDir(),s==="ts"?buildTypeScriptProject(e,n):buildJavaScriptProject(e,n);const r=(0,global_helpers_1.detectPackageManagerFromUserAgent)();console.info(`
|
|
3
3
|
\x1B[1m\x1B[32m Build complete!\x1B[0m
|
|
4
4
|
`),console.info(" \x1B[1mNext step:\x1B[0m"),console.info(` Run it using \x1B[1m\x1B[36m${r} run start\x1B[0m
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";var __importDefault=function(r){return r&&r.__esModule?r:{default:r}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.devCommand=devCommand,exports.killDevelopmentServerChildProcess=killDevelopmentServerChildProcess;const child_process_1=require("child_process"),chokidar_1=require("chokidar"),fs_helpers_1=require("../helpers/fs.helpers"),cli_helpers_1=require("./utils/cli.helpers"),dotenv_helpers_1=require("../dotenv.helpers"),global_helpers_1=require("../helpers/global.helpers"),fs_1=__importDefault(require("fs")),path_1=__importDefault(require("path")),sheu_1=__importDefault(require("../sheu")),port_and_host_allocator_1=__importDefault(require("../features/port-and-host-allocator"));let child=null,envFiles;async function devCommand(r={}){process.env.NODE_ENV="development",envFiles=(0,dotenv_helpers_1.loadEnvironmentVariables)(),child=null;let s=null;try{const{port:i,host:p}=r;let f=!1,c=new Set;const h=(0,fs_helpers_1.getUserFileExtension)(),l=path_1.default.resolve(process.cwd(),`src/app.${h}`);fs_1.default.existsSync(l)||(console.error(`Could not find application entry point at ${l}`),process.exit(1));const a=()=>({NODE_ENV:"development",...process.env,...i&&{CLI_PORT:i},...p&&{CLI_HOST:p}}),d=()=>{child&&(child.kill(),child=null);const t=a();h==="ts"?child=(0,child_process_1.spawn)("npx",["ts-node-dev","--respawn","--notify=false","--ignore-watch","node_modules","--ignore-watch","dist","--ignore-watch","build","--ignore-watch",".dist","--ignore-watch",".build","--watch","src",l],{stdio:"inherit",env:t,shell:!0}):child=(0,child_process_1.spawn)("npx",["node-dev","--respawn","--notify=false","--ignore","node_modules","--ignore","dist","--ignore","build","--ignore",".dist","--ignore",".build",l],{stdio:"inherit",env:t,shell:!0}),child&&(child.on("error",e=>{console.error("Failed to start server:",e)}),child.on("exit",(e,o)=>{!f&&o!=="SIGTERM"&&o!=="SIGINT"&&(console.info(`Server exited with code ${e}, restarting...`),d())}))},g=(t,e)=>{e&&c.add(e),s&&clearTimeout(s);const n=new Date().toTimeString().split(" ")[0];f=!0,child&&(child.kill(),child=null),s=setTimeout(()=>{sheu_1.default.info(`\x1B[90m${n}\x1B[0m Restarting: ${t.toLowerCase()}`),d(),s=null,c.delete(e)},1e3)},w=()=>{const t=(0,chokidar_1.watch)((0,fs_helpers_1.fullCleanCwd)(envFiles?.join(",")||"").replaceAll("/","").split(",")||[],{ignoreInitial:!0,persistent:!0});return t.on("all",(e,o)=>{try{envFiles=(0,dotenv_helpers_1.loadEnvironmentVariables)(),g("Environments files changed",o)}catch(n){console.error(`Error reloading ${o}:`,n)}}),t},_=()=>{const t=(0,chokidar_1.watch)(["src","package.json","tsconfig.json","jsconfig.json","arkos.config.ts","arkos.config.js"],{ignoreInitial:!0,ignored:[/node_modules/,/\.git/,/\.dist/,/\.build/,/dist/,/build/,/\.env.*/],awaitWriteFinish:{stabilityThreshold:3e3}});return t.on("add",e=>{c.has(e)||g(`${(0,fs_helpers_1.fullCleanCwd)(e)} has been created`,e)}),t};d();const v=w(),m=_(),b=async()=>{try{const{getArkosConfig:t}=await(0,global_helpers_1.importModule)("../../server"),e=t();if(e&&e.available){const o=a(),n=await port_and_host_allocator_1.default.getHostAndAvailablePort(o,{...e,logWarning:!0,caller:"dev"});return console.info(`
|
|
1
|
+
"use strict";var __importDefault=this&&this.__importDefault||function(r){return r&&r.__esModule?r:{default:r}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.devCommand=devCommand,exports.killDevelopmentServerChildProcess=killDevelopmentServerChildProcess;const child_process_1=require("child_process"),chokidar_1=require("chokidar"),fs_helpers_1=require("../helpers/fs.helpers"),cli_helpers_1=require("./utils/cli.helpers"),dotenv_helpers_1=require("../dotenv.helpers"),global_helpers_1=require("../helpers/global.helpers"),fs_1=__importDefault(require("fs")),path_1=__importDefault(require("path")),sheu_1=__importDefault(require("../sheu")),port_and_host_allocator_1=__importDefault(require("../features/port-and-host-allocator"));let child=null,envFiles;async function devCommand(r={}){process.env.NODE_ENV="development",envFiles=(0,dotenv_helpers_1.loadEnvironmentVariables)(),child=null;let s=null;try{const{port:i,host:p}=r;let f=!1,c=new Set;const h=(0,fs_helpers_1.getUserFileExtension)(),l=path_1.default.resolve(process.cwd(),`src/app.${h}`);fs_1.default.existsSync(l)||(console.error(`Could not find application entry point at ${l}`),process.exit(1));const a=()=>({NODE_ENV:"development",...process.env,...i&&{CLI_PORT:i},...p&&{CLI_HOST:p}}),d=()=>{child&&(child.kill(),child=null);const t=a();h==="ts"?child=(0,child_process_1.spawn)("npx",["ts-node-dev","--respawn","--notify=false","--ignore-watch","node_modules","--ignore-watch","dist","--ignore-watch","build","--ignore-watch",".dist","--ignore-watch",".build","--watch","src",l],{stdio:"inherit",env:t,shell:!0}):child=(0,child_process_1.spawn)("npx",["node-dev","--respawn","--notify=false","--ignore","node_modules","--ignore","dist","--ignore","build","--ignore",".dist","--ignore",".build",l],{stdio:"inherit",env:t,shell:!0}),child&&(child.on("error",e=>{console.error("Failed to start server:",e)}),child.on("exit",(e,o)=>{!f&&o!=="SIGTERM"&&o!=="SIGINT"&&(console.info(`Server exited with code ${e}, restarting...`),d())}))},g=(t,e)=>{e&&c.add(e),s&&clearTimeout(s);const n=new Date().toTimeString().split(" ")[0];f=!0,child&&(child.kill(),child=null),s=setTimeout(()=>{sheu_1.default.info(`\x1B[90m${n}\x1B[0m Restarting: ${t.toLowerCase()}`),d(),s=null,c.delete(e)},1e3)},w=()=>{const t=(0,chokidar_1.watch)((0,fs_helpers_1.fullCleanCwd)(envFiles?.join(",")||"").replaceAll("/","").split(",")||[],{ignoreInitial:!0,persistent:!0});return t.on("all",(e,o)=>{try{envFiles=(0,dotenv_helpers_1.loadEnvironmentVariables)(),g("Environments files changed",o)}catch(n){console.error(`Error reloading ${o}:`,n)}}),t},_=()=>{const t=(0,chokidar_1.watch)(["src","package.json","tsconfig.json","jsconfig.json","arkos.config.ts","arkos.config.js"],{ignoreInitial:!0,ignored:[/node_modules/,/\.git/,/\.dist/,/\.build/,/dist/,/build/,/\.env.*/],awaitWriteFinish:{stabilityThreshold:3e3}});return t.on("add",e=>{c.has(e)||g(`${(0,fs_helpers_1.fullCleanCwd)(e)} has been created`,e)}),t};d();const v=w(),m=_(),b=async()=>{try{const{getArkosConfig:t}=await(0,global_helpers_1.importModule)("../../server"),e=t();if(e&&e.available){const o=a(),n=await port_and_host_allocator_1.default.getHostAndAvailablePort(o,{...e,logWarning:!0,caller:"dev"});return console.info(`
|
|
2
2
|
\x1B[1m\x1B[36m Arkos.js ${(0,cli_helpers_1.getVersion)()}\x1B[0m`),e?.port!==void 0&&console.info(` - Local: http://${n.host}:${n.port}`),console.info(` - Environments: ${(0,fs_helpers_1.fullCleanCwd)(envFiles?.join(", ")||"").replaceAll(`${process.cwd()}/`,"").replaceAll("/","")}
|
|
3
3
|
`),!0}return!1}catch(t){const e=t?.message;return!e.includes("../../server")&&!e.includes("cjs/server")&&console.info(t),!1}};(async()=>{let t=0;const e=15;for(;t<e&&!await b();)await new Promise(n=>setTimeout(n,100)),t++;if(t>=e){const o=a(),n=await port_and_host_allocator_1.default.getHostAndAvailablePort(o,{logWarning:!0});console.info(`
|
|
4
4
|
\x1B[1m\x1B[36m Arkos.js ${(0,cli_helpers_1.getVersion)()}\x1B[0m`),console.info(` - Local: http://${n?.host}:${n?.port}`),console.info(` - Environments: ${(0,fs_helpers_1.fullCleanCwd)(envFiles?.join(", ")||"").replaceAll(`${process.cwd()}/`,"").replaceAll("/","")}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";var __importDefault=function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.generateCommand=void 0;const fs_1=__importDefault(require("fs")),path_1=__importDefault(require("path")),template_generators_1=require("./utils/template-generators"),cli_helpers_1=require("./utils/cli.helpers"),change_case_helpers_1=require("../helpers/change-case.helpers"),fs_helpers_1=require("../helpers/fs.helpers");exports.generateCommand={controller:async t=>{const e=t.model;e||(console.error(`
|
|
1
|
+
"use strict";var __importDefault=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.generateCommand=void 0;const fs_1=__importDefault(require("fs")),path_1=__importDefault(require("path")),template_generators_1=require("./utils/template-generators"),cli_helpers_1=require("./utils/cli.helpers"),change_case_helpers_1=require("../helpers/change-case.helpers"),fs_helpers_1=require("../helpers/fs.helpers");exports.generateCommand={controller:async t=>{const e=t.model;e||(console.error(`
|
|
2
2
|
\u274C Model name is required`),process.exit(1));const{path:c="src/modules"}=t,s={pascal:(0,change_case_helpers_1.pascalCase)(e),camel:(0,change_case_helpers_1.camelCase)(e),kebab:(0,change_case_helpers_1.kebabCase)(e)},n=(0,fs_helpers_1.getUserFileExtension)(),r=path_1.default.join(process.cwd(),c,s.kebab),a=path_1.default.join(r,`${s.kebab}.controller.${n}`);try{(0,cli_helpers_1.ensureDirectoryExists)(r);const o=(0,template_generators_1.generateTemplate)("controller",{modelName:s,imports:{baseController:"arkos/controllers"}});fs_1.default.writeFileSync(a,o),console.info(`
|
|
3
3
|
Controller generated: ${a.replace(process.cwd(),"")}`)}catch(o){console.error("\u274C Failed to generate controller:",o),process.exit(1)}},service:async t=>{const e=t.model;e||(console.error(`
|
|
4
4
|
\u274C Model name is required`),process.exit(1));const{path:c="src/modules"}=t,s={pascal:(0,change_case_helpers_1.pascalCase)(e),camel:(0,change_case_helpers_1.camelCase)(e),kebab:(0,change_case_helpers_1.kebabCase)(e)},n=(0,fs_helpers_1.getUserFileExtension)(),r=path_1.default.join(process.cwd(),c,s.kebab),a=path_1.default.join(r,`${s.kebab}.service.${n}`);try{(0,cli_helpers_1.ensureDirectoryExists)(r);const o=(0,template_generators_1.generateTemplate)("service",{modelName:s,imports:{baseService:"arkos/services"}});fs_1.default.writeFileSync(a,o),console.info(`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var __importDefault=function(o){return o&&o.__esModule?o:{default:o}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.startCommand=startCommand,exports.killProductionServerChildProcess=killProductionServerChildProcess;const path_1=__importDefault(require("path")),fs_1=__importDefault(require("fs")),child_process_1=require("child_process"),dotenv_helpers_1=require("../dotenv.helpers"),global_helpers_1=require("../helpers/global.helpers"),fs_helpers_1=require("../helpers/fs.helpers"),port_and_host_allocator_1=__importDefault(require("../features/port-and-host-allocator")),watermark_stamper_1=__importDefault(require("./utils/watermark-stamper"));let child=null,envFiles;async function startCommand(o={}){process.env.NODE_ENV="production",envFiles=(0,dotenv_helpers_1.loadEnvironmentVariables)();try{const{port:s,host:l}=o,n=path_1.default.join(process.cwd(),".build","src","app.js");fs_1.default.existsSync(path_1.default.join(n))||(console.error(`\u274C Could not find built application entry point at ${(0,fs_helpers_1.fullCleanCwd)(n)}`),process.exit(1));const e={...process.env,NODE_ENV:"production",...s&&{CLI_PORT:s},...l&&{CLI_HOST:l},ARKOS_BUILD:"true"};child=(0,child_process_1.spawn)("node",[n],{stdio:"inherit",env:e,shell:!0}),process.on("SIGINT",()=>{child&&child.kill(),process.exit(0)});const a=async()=>{try{const{getArkosConfig:t}=await(0,global_helpers_1.importModule)("../../server"),r=t();if(r&&r.available){const i=await port_and_host_allocator_1.default.getHostAndAvailablePort(e,{...r,logWarning:!0});return watermark_stamper_1.default.stamp({envFiles,port:"port"in r&&r?.port!==void 0?i.port:void 0,host:i.host}),!0}return!1}catch(t){return t?.message?.includes("../../server")||console.error(t),!1}};(async()=>{let t=0;const r=15;for(;t<r&&!await a();)await new Promise(c=>setTimeout(c,100)),t++;t>=r&&((e.CLI_PORT||e.PORT)&&port_and_host_allocator_1.default.logWarnings(),watermark_stamper_1.default.stamp({envFiles,host:e.CLI_HOST||e.HOST,port:e.CLI_PORT||e.PORT}))})()}catch(s){console.error("\u274C Production server failed to start:",s),process.exit(1)}}function killProductionServerChildProcess(){child?.kill?.(),child=null}
|
|
1
|
+
"use strict";var __importDefault=this&&this.__importDefault||function(o){return o&&o.__esModule?o:{default:o}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.startCommand=startCommand,exports.killProductionServerChildProcess=killProductionServerChildProcess;const path_1=__importDefault(require("path")),fs_1=__importDefault(require("fs")),child_process_1=require("child_process"),dotenv_helpers_1=require("../dotenv.helpers"),global_helpers_1=require("../helpers/global.helpers"),fs_helpers_1=require("../helpers/fs.helpers"),port_and_host_allocator_1=__importDefault(require("../features/port-and-host-allocator")),watermark_stamper_1=__importDefault(require("./utils/watermark-stamper"));let child=null,envFiles;async function startCommand(o={}){process.env.NODE_ENV="production",envFiles=(0,dotenv_helpers_1.loadEnvironmentVariables)();try{const{port:s,host:l}=o,n=path_1.default.join(process.cwd(),".build","src","app.js");fs_1.default.existsSync(path_1.default.join(n))||(console.error(`\u274C Could not find built application entry point at ${(0,fs_helpers_1.fullCleanCwd)(n)}`),process.exit(1));const e={...process.env,NODE_ENV:"production",...s&&{CLI_PORT:s},...l&&{CLI_HOST:l},ARKOS_BUILD:"true"};child=(0,child_process_1.spawn)("node",[n],{stdio:"inherit",env:e,shell:!0}),process.on("SIGINT",()=>{child&&child.kill(),process.exit(0)});const a=async()=>{try{const{getArkosConfig:t}=await(0,global_helpers_1.importModule)("../../server"),r=t();if(r&&r.available){const i=await port_and_host_allocator_1.default.getHostAndAvailablePort(e,{...r,logWarning:!0});return watermark_stamper_1.default.stamp({envFiles,port:"port"in r&&r?.port!==void 0?i.port:void 0,host:i.host}),!0}return!1}catch(t){return t?.message?.includes("../../server")||console.error(t),!1}};(async()=>{let t=0;const r=15;for(;t<r&&!await a();)await new Promise(c=>setTimeout(c,100)),t++;t>=r&&((e.CLI_PORT||e.PORT)&&port_and_host_allocator_1.default.logWarnings(),watermark_stamper_1.default.stamp({envFiles,host:e.CLI_HOST||e.HOST,port:e.CLI_PORT||e.PORT}))})()}catch(s){console.error("\u274C Production server failed to start:",s),process.exit(1)}}function killProductionServerChildProcess(){child?.kill?.(),child=null}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var __importDefault=function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.ensureDirectoryExists=ensureDirectoryExists,exports.killServerChildProcess=killServerChildProcess,exports.getVersion=getVersion;const fs_1=__importDefault(require("fs")),dev_1=require("../dev"),start_1=require("../start");function ensureDirectoryExists(e){fs_1.default.existsSync(e)||fs_1.default.mkdirSync(e,{recursive:!0})}function killServerChildProcess(){(0,dev_1.killDevelopmentServerChildProcess)(),(0,start_1.killProductionServerChildProcess)()}function getVersion(){return"1.2.15-test.
|
|
1
|
+
"use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.ensureDirectoryExists=ensureDirectoryExists,exports.killServerChildProcess=killServerChildProcess,exports.getVersion=getVersion;const fs_1=__importDefault(require("fs")),dev_1=require("../dev"),start_1=require("../start");function ensureDirectoryExists(e){fs_1.default.existsSync(e)||fs_1.default.mkdirSync(e,{recursive:!0})}function killServerChildProcess(){(0,dev_1.killDevelopmentServerChildProcess)(),(0,start_1.killProductionServerChildProcess)()}function getVersion(){return"1.2.15-test.4"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";var __importDefault=function(r){return r&&r.__esModule?r:{default:r}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.generateRouterTemplate=generateRouterTemplate;const pluralize_1=__importDefault(require("pluralize")),fs_helpers_1=require("../../../../helpers/fs.helpers");function generateRouterTemplate(r){const{modelName:e,imports:o}=r;if(!e)throw new Error("Model name is required for router template");const t=(0,fs_helpers_1.getUserFileExtension)(),n=o?.controller||`./${e.kebab}.controller.${t}`,s=t==="ts"?": RouterConfig":"",c=t==="ts"?"import { RouterConfig } from 'arkos'":"",l=(0,fs_helpers_1.checkFileExists)(n),i=l?`import ${e.camel}Controller from "${o?.controller||`./${e.kebab}.controller`}"`:`// import ${e.camel}Controller from "${o?.controller||`./${e.kebab}.controller`}"`,a=l?` ${e.camel}Controller.someHandler`:` // ${e.camel}Controller.someHandler`;return`import { Router } from 'express'
|
|
1
|
+
"use strict";var __importDefault=this&&this.__importDefault||function(r){return r&&r.__esModule?r:{default:r}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.generateRouterTemplate=generateRouterTemplate;const pluralize_1=__importDefault(require("pluralize")),fs_helpers_1=require("../../../../helpers/fs.helpers");function generateRouterTemplate(r){const{modelName:e,imports:o}=r;if(!e)throw new Error("Model name is required for router template");const t=(0,fs_helpers_1.getUserFileExtension)(),n=o?.controller||`./${e.kebab}.controller.${t}`,s=t==="ts"?": RouterConfig":"",c=t==="ts"?"import { RouterConfig } from 'arkos'":"",l=(0,fs_helpers_1.checkFileExists)(n),i=l?`import ${e.camel}Controller from "${o?.controller||`./${e.kebab}.controller`}"`:`// import ${e.camel}Controller from "${o?.controller||`./${e.kebab}.controller`}"`,a=l?` ${e.camel}Controller.someHandler`:` // ${e.camel}Controller.someHandler`;return`import { Router } from 'express'
|
|
2
2
|
import { authService } from 'arkos/services'
|
|
3
3
|
${i}
|
|
4
4
|
${c}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var __importDefault=function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.loadEnvironmentVariables=loadEnvironmentVariables;const path_1=__importDefault(require("path")),fs_1=__importDefault(require("fs")),dotenv_1=__importDefault(require("dotenv"));function loadEnvironmentVariables(){const e=process.env.NODE_ENV,n=process.cwd();let o=[];[path_1.default.resolve(n,".env.defaults"),path_1.default.resolve(n,`.env.${e}`),path_1.default.resolve(n,`.env.${e}.local`),path_1.default.resolve(n,".env.local"),path_1.default.resolve(n,".env")].forEach(r=>{if(fs_1.default.existsSync(r))if(e==="production"&&r.endsWith(".local"))console.info(`Skipping the local ${r.replace(n,"")} files in production`);else{const t=dotenv_1.default.config({path:r,override:!0});t.error?console.warn(`Warning: Error loading ${r}`,t.error):o.push(r)}});const s=["DATABASE_URL"].filter(r=>!process.env[r]);if(s.length>0&&console.error("Missing required environment variables:",s.join(", ")),o)return o}
|
|
1
|
+
"use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.loadEnvironmentVariables=loadEnvironmentVariables;const path_1=__importDefault(require("path")),fs_1=__importDefault(require("fs")),dotenv_1=__importDefault(require("dotenv"));function loadEnvironmentVariables(){const e=process.env.NODE_ENV,n=process.cwd();let o=[];[path_1.default.resolve(n,".env.defaults"),path_1.default.resolve(n,`.env.${e}`),path_1.default.resolve(n,`.env.${e}.local`),path_1.default.resolve(n,".env.local"),path_1.default.resolve(n,".env")].forEach(r=>{if(fs_1.default.existsSync(r))if(e==="production"&&r.endsWith(".local"))console.info(`Skipping the local ${r.replace(n,"")} files in production`);else{const t=dotenv_1.default.config({path:r,override:!0});t.error?console.warn(`Warning: Error loading ${r}`,t.error):o.push(r)}});const s=["DATABASE_URL"].filter(r=>!process.env[r]);if(s.length>0&&console.error("Missing required environment variables:",s.join(", ")),o)return o}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var __importDefault=function(o){return o&&o.__esModule?o:{default:o}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.apiFeatures=void 0;const deepmerge_helper_1=__importDefault(require("../helpers/deepmerge.helper")),api_features_helpers_1=require("../helpers/api.features.helpers"),app_error_1=__importDefault(require("../../modules/error-handler/utils/app-error")),prisma_helpers_1=require("../helpers/prisma.helpers");class APIFeatures{constructor(e,s){if(this.filters={},this.reqFiltersSearchParam={},this.excludedFields=["page","filters","sort","limit","fields","addFields","removeFields","search","include","filterMode","where","prismaQueryOptions","ignoredFields"],e){const{filters:t="{}",...h}=e.query;this.req=e,this.searchParams=(0,deepmerge_helper_1.default)((0,api_features_helpers_1.parseQueryParamsWithModifiers)(h),(0,api_features_helpers_1.parseQueryParamsWithModifiers)(JSON.parse(t))),e.finalPrismaQueryOptions=this.searchParams}s&&(this.modelName=s),this.filters={...this.filters}}setup(e,s){if(e){const{filters:t="{}",...h}=e.query;this.req=e,this.searchParams=(0,deepmerge_helper_1.default)((0,api_features_helpers_1.parseQueryParamsWithModifiers)(h),(0,api_features_helpers_1.parseQueryParamsWithModifiers)(JSON.parse(t))),e.finalPrismaQueryOptions=this.searchParams}return s&&(this.modelName=s),this.filters={...this.filters},this}filter(){if(!this.req)throw new Error("Trying to use APIFeatures.filter() without passing request on class constructor or APIFeatures.setup() method. read more about at www.arkosjs.com/docs/advanced-guide/api-features-class");const e=[],s={...this.searchParams};this.excludedFields.forEach(a=>delete s[a]);const t={...this.req.params,...s},h=Object.keys(t).map(a=>({[a]:t[a]}));let i=h.length>0?{[this.req.query?.filterMode??"OR"]:h}:{};if(this.searchParams.search){const a=(0,prisma_helpers_1.getPrismaInstance)();this.modelName&&Object.keys(a[this.modelName].fields).forEach(l=>{const d=a[this.modelName].fields[l];d?.typeName==="String"&&l!=="id"&&l!=="password"&&!d.isList&&!l?.includes?.("Id")&&!l?.includes?.("ID")&&e.push({[`${l}`]:{contains:this.searchParams.search,mode:"insensitive"}})}),i=(0,deepmerge_helper_1.default)({OR:e},i)}const r=(0,deepmerge_helper_1.default)({where:i},this.req.prismaQueryOptions||{});return this.filters=(0,deepmerge_helper_1.default)(r,this.filters),this}search(){this.searchParams?.search&&(this.filters=(0,deepmerge_helper_1.default)(this.filters,{where:{OR:[]}}))}sort(){if(this.searchParams.sort){const e=this.searchParams?.sort?.split(",")?.map(s=>({[s.startsWith("-")?s.substring(1):s]:s.startsWith("-")?"desc":"asc"}));this.filters=(0,deepmerge_helper_1.default)(this.filters,{orderBy:e})}return this}limitFields(){if(this.searchParams?.fields){const e=this.searchParams.fields.split(","),s=e.filter(r=>!r.startsWith("+")&&!r.startsWith("-")),t=e.filter(r=>r.startsWith("+")).map(r=>r.substring(1)),h=e.filter(r=>r.startsWith("-")).map(r=>r.substring(1));let i={};s.length>0?i=s.reduce((r,a)=>(r[a]=!0,r),{}):(i=this.filters.include||{},t.forEach(r=>{i[r]=!0}),h.forEach(r=>{i[r]=!1})),this.filters={...this.filters,select:i},this.filters.include&&delete this.filters.include}if(this.searchParams?.addFields||this.searchParams?.removeFields)throw new app_error_1.default("The addFields and removeFields parameters are deprecated. Please use fields with + and - prefixes instead.",400);return this}paginate(){const e=parseInt(this.searchParams.page,10)||1,s=parseInt(this.searchParams.limit,10)||30,t=(e-1)*s;return this.filters={...this.filters,skip:t,take:s},this}}exports.default=APIFeatures,exports.apiFeatures=new APIFeatures;
|
|
1
|
+
"use strict";var __importDefault=this&&this.__importDefault||function(o){return o&&o.__esModule?o:{default:o}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.apiFeatures=void 0;const deepmerge_helper_1=__importDefault(require("../helpers/deepmerge.helper")),api_features_helpers_1=require("../helpers/api.features.helpers"),app_error_1=__importDefault(require("../../modules/error-handler/utils/app-error")),prisma_helpers_1=require("../helpers/prisma.helpers");class APIFeatures{constructor(e,s){if(this.filters={},this.reqFiltersSearchParam={},this.excludedFields=["page","filters","sort","limit","fields","addFields","removeFields","search","include","filterMode","where","prismaQueryOptions","ignoredFields"],e){const{filters:t="{}",...h}=e.query;this.req=e,this.searchParams=(0,deepmerge_helper_1.default)((0,api_features_helpers_1.parseQueryParamsWithModifiers)(h),(0,api_features_helpers_1.parseQueryParamsWithModifiers)(JSON.parse(t))),e.finalPrismaQueryOptions=this.searchParams}s&&(this.modelName=s),this.filters={...this.filters}}setup(e,s){if(e){const{filters:t="{}",...h}=e.query;this.req=e,this.searchParams=(0,deepmerge_helper_1.default)((0,api_features_helpers_1.parseQueryParamsWithModifiers)(h),(0,api_features_helpers_1.parseQueryParamsWithModifiers)(JSON.parse(t))),e.finalPrismaQueryOptions=this.searchParams}return s&&(this.modelName=s),this.filters={...this.filters},this}filter(){if(!this.req)throw new Error("Trying to use APIFeatures.filter() without passing request on class constructor or APIFeatures.setup() method. read more about at www.arkosjs.com/docs/advanced-guide/api-features-class");const e=[],s={...this.searchParams};this.excludedFields.forEach(a=>delete s[a]);const t={...this.req.params,...s},h=Object.keys(t).map(a=>({[a]:t[a]}));let i=h.length>0?{[this.req.query?.filterMode??"OR"]:h}:{};if(this.searchParams.search){const a=(0,prisma_helpers_1.getPrismaInstance)();this.modelName&&Object.keys(a[this.modelName].fields).forEach(l=>{const d=a[this.modelName].fields[l];d?.typeName==="String"&&l!=="id"&&l!=="password"&&!d.isList&&!l?.includes?.("Id")&&!l?.includes?.("ID")&&e.push({[`${l}`]:{contains:this.searchParams.search,mode:"insensitive"}})}),i=(0,deepmerge_helper_1.default)({OR:e},i)}const r=(0,deepmerge_helper_1.default)({where:i},this.req.prismaQueryOptions||{});return this.filters=(0,deepmerge_helper_1.default)(r,this.filters),this}search(){this.searchParams?.search&&(this.filters=(0,deepmerge_helper_1.default)(this.filters,{where:{OR:[]}}))}sort(){if(this.searchParams.sort){const e=this.searchParams?.sort?.split(",")?.map(s=>({[s.startsWith("-")?s.substring(1):s]:s.startsWith("-")?"desc":"asc"}));this.filters=(0,deepmerge_helper_1.default)(this.filters,{orderBy:e})}return this}limitFields(){if(this.searchParams?.fields){const e=this.searchParams.fields.split(","),s=e.filter(r=>!r.startsWith("+")&&!r.startsWith("-")),t=e.filter(r=>r.startsWith("+")).map(r=>r.substring(1)),h=e.filter(r=>r.startsWith("-")).map(r=>r.substring(1));let i={};s.length>0?i=s.reduce((r,a)=>(r[a]=!0,r),{}):(i=this.filters.include||{},t.forEach(r=>{i[r]=!0}),h.forEach(r=>{i[r]=!1})),this.filters={...this.filters,select:i},this.filters.include&&delete this.filters.include}if(this.searchParams?.addFields||this.searchParams?.removeFields)throw new app_error_1.default("The addFields and removeFields parameters are deprecated. Please use fields with + and - prefixes instead.",400);return this}paginate(){const e=parseInt(this.searchParams.page,10)||1,s=parseInt(this.searchParams.limit,10)||30,t=(e-1)*s;return this.filters={...this.filters,skip:t,take:s},this}}exports.default=APIFeatures,exports.apiFeatures=new APIFeatures;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var __createBinding=Object.create?function(s,e,t,a){a===void 0&&(a=t);var r=Object.getOwnPropertyDescriptor(e,t);(!r||("get"in r?!e.__esModule:r.writable||r.configurable))&&(r={enumerable:!0,get:function(){return e[t]}}),Object.defineProperty(s,a,r)}:function(s,e,t,a){a===void 0&&(a=t),s[a]=e[t]},__setModuleDefault=Object.create?function(s,e){Object.defineProperty(s,"default",{enumerable:!0,value:e})}:function(s,e){s.default=e},__importStar=function(){var s=function(e){return s=Object.getOwnPropertyNames||function(t){var a=[];for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(a[a.length]=r);return a},s(e)};return function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var a=s(e),r=0;r<a.length;r++)a[r]!=="default"&&__createBinding(t,e,a[r]);return __setModuleDefault(t,e),t}}();Object.defineProperty(exports,"__esModule",{value:!0}),exports.snakeCase=exports.sentenceCase=exports.pathCase=exports.pascalCase=exports.kebabCase=exports.noCase=exports.trainCase=exports.dotCase=exports.constantCase=exports.capitalCase=exports.camelCase=void 0;const changeCase=__importStar(require("../helpers/change-case.helpers")),isObject=s=>s!==null&&typeof s=="object";function changeKeysFactory(s){return function e(t,a=1,r){if(a===0||!isObject(t))return t;if(Array.isArray(t))return t.map(n=>e(n,a-1,r));const o=Object.create(Object.getPrototypeOf(t));return Object.keys(t).forEach(n=>{const c=t[n],u=s(n,r),i=e(c,a-1,r);o[u]=i}),o}}exports.camelCase=changeKeysFactory(changeCase.camelCase),exports.capitalCase=changeKeysFactory(changeCase.capitalCase),exports.constantCase=changeKeysFactory(changeCase.constantCase),exports.dotCase=changeKeysFactory(changeCase.dotCase),exports.trainCase=changeKeysFactory(changeCase.trainCase),exports.noCase=changeKeysFactory(changeCase.noCase),exports.kebabCase=changeKeysFactory(changeCase.kebabCase),exports.pascalCase=changeKeysFactory(changeCase.pascalCase),exports.pathCase=changeKeysFactory(changeCase.pathCase),exports.sentenceCase=changeKeysFactory(changeCase.sentenceCase),exports.snakeCase=changeKeysFactory(changeCase.snakeCase);
|
|
1
|
+
"use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(s,e,t,a){a===void 0&&(a=t);var r=Object.getOwnPropertyDescriptor(e,t);(!r||("get"in r?!e.__esModule:r.writable||r.configurable))&&(r={enumerable:!0,get:function(){return e[t]}}),Object.defineProperty(s,a,r)}:function(s,e,t,a){a===void 0&&(a=t),s[a]=e[t]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(s,e){Object.defineProperty(s,"default",{enumerable:!0,value:e})}:function(s,e){s.default=e}),__importStar=this&&this.__importStar||function(){var s=function(e){return s=Object.getOwnPropertyNames||function(t){var a=[];for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(a[a.length]=r);return a},s(e)};return function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var a=s(e),r=0;r<a.length;r++)a[r]!=="default"&&__createBinding(t,e,a[r]);return __setModuleDefault(t,e),t}}();Object.defineProperty(exports,"__esModule",{value:!0}),exports.snakeCase=exports.sentenceCase=exports.pathCase=exports.pascalCase=exports.kebabCase=exports.noCase=exports.trainCase=exports.dotCase=exports.constantCase=exports.capitalCase=exports.camelCase=void 0;const changeCase=__importStar(require("../helpers/change-case.helpers")),isObject=s=>s!==null&&typeof s=="object";function changeKeysFactory(s){return function e(t,a=1,r){if(a===0||!isObject(t))return t;if(Array.isArray(t))return t.map(n=>e(n,a-1,r));const o=Object.create(Object.getPrototypeOf(t));return Object.keys(t).forEach(n=>{const c=t[n],u=s(n,r),i=e(c,a-1,r);o[u]=i}),o}}exports.camelCase=changeKeysFactory(changeCase.camelCase),exports.capitalCase=changeKeysFactory(changeCase.capitalCase),exports.constantCase=changeKeysFactory(changeCase.constantCase),exports.dotCase=changeKeysFactory(changeCase.dotCase),exports.trainCase=changeKeysFactory(changeCase.trainCase),exports.noCase=changeKeysFactory(changeCase.noCase),exports.kebabCase=changeKeysFactory(changeCase.kebabCase),exports.pascalCase=changeKeysFactory(changeCase.pascalCase),exports.pathCase=changeKeysFactory(changeCase.pathCase),exports.sentenceCase=changeKeysFactory(changeCase.sentenceCase),exports.snakeCase=changeKeysFactory(changeCase.snakeCase);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var __createBinding=Object.create?function(o,t,e,r){r===void 0&&(r=e);var n=Object.getOwnPropertyDescriptor(t,e);(!n||("get"in n?!t.__esModule:n.writable||n.configurable))&&(n={enumerable:!0,get:function(){return t[e]}}),Object.defineProperty(o,r,n)}:function(o,t,e,r){r===void 0&&(r=e),o[r]=t[e]},__setModuleDefault=Object.create?function(o,t){Object.defineProperty(o,"default",{enumerable:!0,value:t})}:function(o,t){o.default=t},__importStar=function(){var o=function(t){return o=Object.getOwnPropertyNames||function(e){var r=[];for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(r[r.length]=n);return r},o(t)};return function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r=o(t),n=0;n<r.length;n++)r[n]!=="default"&&__createBinding(e,t,r[n]);return __setModuleDefault(e,t),e}}(),__importDefault=function(o){return o&&o.__esModule?o:{default:o}};Object.defineProperty(exports,"__esModule",{value:!0});const net=__importStar(require("net")),sheu_1=__importDefault(require("../sheu"));class PortAndHostAllocator{constructor(){this.prevWarnings=new Set}getCorrectHostAndPortToUse(t,e){const r=t?.CLI_HOST||e?.host||t?.HOST||"localhost",n=t?.CLI_PORT||e?.port||t?.PORT||"8000";return{host:String(r),port:String(n)}}async getHostAndAvailablePort(t,e){if(this.port&&this.host)return e?.logWarning&&this.prevWarnings.size>0&&(console.info(""),Array.from(this.prevWarnings).forEach(s=>sheu_1.default.warn(s))),{port:this.port,host:this.host};const{host:r,port:n}=this.getCorrectHostAndPortToUse(t,e);let i=parseInt(n,10);for(;;){if(await this.isPortAvailable(r,i))return this.port=i.toString(),this.host=r,{host:r,port:i.toString()};const a=`Port ${i} is in use, trying port ${i+1} instead...`;this.prevWarnings.add(a),e?.logWarning&&(console.info(""),sheu_1.default.warn(`${a}`)),i++}}async isPortAvailable(t,e){return new Promise(r=>{const n=net.createServer(),i=[e,["localhost","127.0.0.1"].includes(t)?void 0:t].filter(s=>!!s);n.listen(...i,()=>{n.close(()=>{r(!0)})}),n.on("error",()=>{r(!1)})})}logWarnings(){console.info(""),Array.from(this.prevWarnings).forEach(t=>sheu_1.default.warn(t))}}const portAndHostAllocator=new PortAndHostAllocator;exports.default=portAndHostAllocator;
|
|
1
|
+
"use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(o,t,e,r){r===void 0&&(r=e);var n=Object.getOwnPropertyDescriptor(t,e);(!n||("get"in n?!t.__esModule:n.writable||n.configurable))&&(n={enumerable:!0,get:function(){return t[e]}}),Object.defineProperty(o,r,n)}:function(o,t,e,r){r===void 0&&(r=e),o[r]=t[e]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(o,t){Object.defineProperty(o,"default",{enumerable:!0,value:t})}:function(o,t){o.default=t}),__importStar=this&&this.__importStar||function(){var o=function(t){return o=Object.getOwnPropertyNames||function(e){var r=[];for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(r[r.length]=n);return r},o(t)};return function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r=o(t),n=0;n<r.length;n++)r[n]!=="default"&&__createBinding(e,t,r[n]);return __setModuleDefault(e,t),e}}(),__importDefault=this&&this.__importDefault||function(o){return o&&o.__esModule?o:{default:o}};Object.defineProperty(exports,"__esModule",{value:!0});const net=__importStar(require("net")),sheu_1=__importDefault(require("../sheu"));class PortAndHostAllocator{constructor(){this.prevWarnings=new Set}getCorrectHostAndPortToUse(t,e){const r=t?.CLI_HOST||e?.host||t?.HOST||"localhost",n=t?.CLI_PORT||e?.port||t?.PORT||"8000";return{host:String(r),port:String(n)}}async getHostAndAvailablePort(t,e){if(this.port&&this.host)return e?.logWarning&&this.prevWarnings.size>0&&(console.info(""),Array.from(this.prevWarnings).forEach(s=>sheu_1.default.warn(s))),{port:this.port,host:this.host};const{host:r,port:n}=this.getCorrectHostAndPortToUse(t,e);let i=parseInt(n,10);for(;;){if(await this.isPortAvailable(r,i))return this.port=i.toString(),this.host=r,{host:r,port:i.toString()};const a=`Port ${i} is in use, trying port ${i+1} instead...`;this.prevWarnings.add(a),e?.logWarning&&(console.info(""),sheu_1.default.warn(`${a}`)),i++}}async isPortAvailable(t,e){return new Promise(r=>{const n=net.createServer(),i=[e,["localhost","127.0.0.1"].includes(t)?void 0:t].filter(s=>!!s);n.listen(...i,()=>{n.close(()=>{r(!0)})}),n.on("error",()=>{r(!1)})})}logWarnings(){console.info(""),Array.from(this.prevWarnings).forEach(t=>sheu_1.default.warn(t))}}const portAndHostAllocator=new PortAndHostAllocator;exports.default=portAndHostAllocator;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var __importDefault=function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.parseQueryParamsWithModifiers=parseQueryParamsWithModifiers;const deepmerge_helper_1=__importDefault(require("./deepmerge.helper")),DEFAULT_FIELD_CONFIG={dateFields:["createdAt","updatedAt","deletedAt","date"],booleanFields:["isActive","isDeleted","isPublished","isArchived"],numericFields:["age","price","quantity","amount","rating"]};function parseQueryParamsWithModifiers(e,s=DEFAULT_FIELD_CONFIG){const o=Object.entries(JSON.parse(JSON.stringify(e)));let d={};for(const[b,i]of o){const t=b.split("__");if(!i&&i!==!1&&i!=="false"&&t.length<2)continue;const r=Array.isArray(i)?i[0]?.toString():i;let u={};if(t.length<2)u[b]=typeof i=="string"&&!Number.isNaN(i)?convertValue(r,t[0],s):i;else{const l=t[0];if(l==="orderBy"&&t.length===2)u.orderBy={},u.orderBy[t[1]]=r;else if(t.length===1)u[l]={equals:convertValue(r,l,s)};else{let p={},n=p,a=l;for(let c=1;c<t.length-1;c++)n[a]={},n=n[a],a=t[c];const f=t[t.length-1];switch(f){case"icontains":n[a]={contains:r,mode:"insensitive"};break;case"contains":n[a]={contains:r,mode:"sensitive"};break;case"in":case"notIn":n[a]={[f]:r.split(",").map(h=>convertValue(h.trim(),l,s))};break;case"or":const c=r.split(",");p.OR=c.map(h=>({[l]:{equals:convertValue(h.trim(),l,s)}}));break;case"isNull":n[a]={equals:r.toLowerCase()==="true"?null:void 0};break;case"isEmpty":n[a]={equals:r.toLowerCase()==="true"?"":void 0};break;default:n[a]={[f]:convertValue(r,l,s)}}u=p}}d=(0,deepmerge_helper_1.default)(d,u)}return d}function convertValue(e,s,o){return o.dateFields?.includes?.(s)&&e?new Date(e):o.booleanFields?.includes?.(s)&&e?e.toLowerCase()==="true":o.numericFields?.includes?.(s)&&e?Number(e):e}
|
|
1
|
+
"use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.parseQueryParamsWithModifiers=parseQueryParamsWithModifiers;const deepmerge_helper_1=__importDefault(require("./deepmerge.helper")),DEFAULT_FIELD_CONFIG={dateFields:["createdAt","updatedAt","deletedAt","date"],booleanFields:["isActive","isDeleted","isPublished","isArchived"],numericFields:["age","price","quantity","amount","rating"]};function parseQueryParamsWithModifiers(e,s=DEFAULT_FIELD_CONFIG){const o=Object.entries(JSON.parse(JSON.stringify(e)));let d={};for(const[b,i]of o){const t=b.split("__");if(!i&&i!==!1&&i!=="false"&&t.length<2)continue;const r=Array.isArray(i)?i[0]?.toString():i;let u={};if(t.length<2)u[b]=typeof i=="string"&&!Number.isNaN(i)?convertValue(r,t[0],s):i;else{const l=t[0];if(l==="orderBy"&&t.length===2)u.orderBy={},u.orderBy[t[1]]=r;else if(t.length===1)u[l]={equals:convertValue(r,l,s)};else{let p={},n=p,a=l;for(let c=1;c<t.length-1;c++)n[a]={},n=n[a],a=t[c];const f=t[t.length-1];switch(f){case"icontains":n[a]={contains:r,mode:"insensitive"};break;case"contains":n[a]={contains:r,mode:"sensitive"};break;case"in":case"notIn":n[a]={[f]:r.split(",").map(h=>convertValue(h.trim(),l,s))};break;case"or":const c=r.split(",");p.OR=c.map(h=>({[l]:{equals:convertValue(h.trim(),l,s)}}));break;case"isNull":n[a]={equals:r.toLowerCase()==="true"?null:void 0};break;case"isEmpty":n[a]={equals:r.toLowerCase()==="true"?"":void 0};break;default:n[a]={[f]:convertValue(r,l,s)}}u=p}}d=(0,deepmerge_helper_1.default)(d,u)}return d}function convertValue(e,s,o){return o.dateFields?.includes?.(s)&&e?new Date(e):o.booleanFields?.includes?.(s)&&e?e.toLowerCase()==="true":o.numericFields?.includes?.(s)&&e?Number(e):e}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var __importDefault=function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.getUserFileExtension=exports.userFileExtension=exports.crd=exports.mkdirAsync=exports.accessAsync=exports.statAsync=void 0,exports.fullCleanCwd=fullCleanCwd,exports.checkFileExists=checkFileExists;const util_1=require("util"),fs_1=__importDefault(require("fs")),path_1=__importDefault(require("path"));exports.statAsync=(0,util_1.promisify)(fs_1.default.stat),exports.accessAsync=(0,util_1.promisify)(fs_1.default.access),exports.mkdirAsync=(0,util_1.promisify)(fs_1.default.mkdir);const crd=()=>process.env.ARKOS_BUILD==="true"?process.cwd()+"/.build/":process.cwd();exports.crd=crd;function fullCleanCwd(e){if(typeof e!="string")throw new Error("Path must be a string");const t=process.cwd().replace(/\/+$/,"").replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return e.replace(new RegExp(`${t}/?`,"g"),"")}const getUserFileExtension=()=>{if(exports.userFileExtension)return exports.userFileExtension;try{const e=process.cwd(),s=fs_1.default.existsSync(path_1.default.join(e,"tsconfig.json")),t=fs_1.default.existsSync(path_1.default.join(e,"src","app.ts")),r=fs_1.default.existsSync(path_1.default.join(e,"src","app.js"));return process.env.ARKOS_BUILD==="true"?exports.userFileExtension="js":s||t&&!r?exports.userFileExtension="ts":exports.userFileExtension="js",exports.userFileExtension}catch{return exports.userFileExtension="js",exports.userFileExtension}};exports.getUserFileExtension=getUserFileExtension;function checkFileExists(e){try{return fs_1.default.existsSync(path_1.default.resolve(e))}catch{return!1}}
|
|
1
|
+
"use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.getUserFileExtension=exports.userFileExtension=exports.crd=exports.mkdirAsync=exports.accessAsync=exports.statAsync=void 0,exports.fullCleanCwd=fullCleanCwd,exports.checkFileExists=checkFileExists;const util_1=require("util"),fs_1=__importDefault(require("fs")),path_1=__importDefault(require("path"));exports.statAsync=(0,util_1.promisify)(fs_1.default.stat),exports.accessAsync=(0,util_1.promisify)(fs_1.default.access),exports.mkdirAsync=(0,util_1.promisify)(fs_1.default.mkdir);const crd=()=>process.env.ARKOS_BUILD==="true"?process.cwd()+"/.build/":process.cwd();exports.crd=crd;function fullCleanCwd(e){if(typeof e!="string")throw new Error("Path must be a string");const t=process.cwd().replace(/\/+$/,"").replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return e.replace(new RegExp(`${t}/?`,"g"),"")}const getUserFileExtension=()=>{if(exports.userFileExtension)return exports.userFileExtension;try{const e=process.cwd(),s=fs_1.default.existsSync(path_1.default.join(e,"tsconfig.json")),t=fs_1.default.existsSync(path_1.default.join(e,"src","app.ts")),r=fs_1.default.existsSync(path_1.default.join(e,"src","app.js"));return process.env.ARKOS_BUILD==="true"?exports.userFileExtension="js":s||t&&!r?exports.userFileExtension="ts":exports.userFileExtension="js",exports.userFileExtension}catch{return exports.userFileExtension="js",exports.userFileExtension}};exports.getUserFileExtension=getUserFileExtension;function checkFileExists(e){try{return fs_1.default.existsSync(path_1.default.resolve(e))}catch{return!1}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var __createBinding=Object.create?function(e,r,
|
|
1
|
+
"use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,r,i,n){n===void 0&&(n=i);var t=Object.getOwnPropertyDescriptor(r,i);(!t||("get"in t?!r.__esModule:t.writable||t.configurable))&&(t={enumerable:!0,get:function(){return r[i]}}),Object.defineProperty(e,n,t)}:function(e,r,i,n){n===void 0&&(n=i),e[n]=r[i]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(e,r){Object.defineProperty(e,"default",{enumerable:!0,value:r})}:function(e,r){e.default=r}),__importStar=this&&this.__importStar||function(){var e=function(r){return e=Object.getOwnPropertyNames||function(i){var n=[];for(var t in i)Object.prototype.hasOwnProperty.call(i,t)&&(n[n.length]=t);return n},e(r)};return function(r){if(r&&r.__esModule)return r;var i={};if(r!=null)for(var n=e(r),t=0;t<n.length;t++)n[t]!=="default"&&__createBinding(i,r,n[t]);return __setModuleDefault(i,r),i}}(),__importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.getPackageJson=getPackageJson,exports.isEsm=isEsm,exports.importModule=importModule,exports.importEsmPreventingTsTransformation=importEsmPreventingTsTransformation,exports.detectPackageManagerFromUserAgent=detectPackageManagerFromUserAgent;const fs_1=__importDefault(require("fs")),path_1=__importDefault(require("path")),module_1=require("module"),url_1=require("url");function getPackageJson(){try{const e=path_1.default.join(process.cwd(),"package.json");if(fs_1.default.existsSync(e))return JSON.parse(fs_1.default.readFileSync(e,"utf8"))}catch(e){console.error("Error checking package.json:",e)}}function isEsm(){return getPackageJson()?.type==="module"}async function importModule(e,r={fixExtension:!0}){if(!r.fixExtension||e.endsWith(".ts")||!isEsm())return await Promise.resolve(`${e}`).then(t=>__importStar(require(t)));const n=(0,module_1.createRequire)((0,url_1.pathToFileURL)(process.cwd()+"/package.json")).resolve(e);return await Promise.resolve(`${(0,url_1.pathToFileURL)(n)}`).then(t=>__importStar(require(t)))}async function importEsmPreventingTsTransformation(e){return await new Function("path","return import(path)")(e)}function detectPackageManagerFromUserAgent(){const e=process.env.npm_config_user_agent||"";return e?e.includes("cnpm")?"cnpm":e.includes("pnpm")?"pnpm":e.includes("yarn")?"yarn":e.includes("npm")?"npm":e.includes("bun")?"bun":e.includes("corepack")?"corepack":e.includes("deno")?"deno":"npm":"npm"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"global.helpers.js","sourceRoot":"","sources":["../../../../src/utils/helpers/global.helpers.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKA,wCASC;AAED,sBAGC;AAED,oCAaC;AAQD,8EAaC;
|
|
1
|
+
{"version":3,"file":"global.helpers.js","sourceRoot":"","sources":["../../../../src/utils/helpers/global.helpers.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKA,wCASC;AAED,sBAGC;AAED,oCAaC;AAKD,kFAGC;AAQD,8EAaC;AA/DD,4CAAoB;AACpB,gDAAwB;AACxB,mCAAuC;AACvC,6BAAoC;AAEpC,SAAgB,cAAc;IAC5B,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,cAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,CAAC,CAAC;QACzD,IAAI,YAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3B,OAAO,IAAI,CAAC,KAAK,CAAC,YAAE,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;QACtD,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE,GAAG,CAAC,CAAC;IACrD,CAAC;AACH,CAAC;AAED,SAAgB,KAAK;IACnB,MAAM,GAAG,GAAG,cAAc,EAAE,CAAC;IAC7B,OAAO,GAAG,EAAE,IAAI,KAAK,QAAQ,CAAC;AAChC,CAAC;AAEM,KAAK,UAAU,YAAY,CAChC,UAAkB,EAClB,UAAqC,EAAE,YAAY,EAAE,IAAI,EAAE;IAE3D,IAAI,CAAC,OAAO,CAAC,YAAY,IAAI,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE;QACjE,OAAO,yBAAa,UAAU,uCAAC,CAAC;IAGlC,MAAM,WAAW,GAAG,IAAA,sBAAa,EAC/B,IAAA,mBAAa,EAAC,OAAO,CAAC,GAAG,EAAE,GAAG,eAAe,CAAC,CAC/C,CAAC;IACF,MAAM,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACjD,OAAO,yBAAa,IAAA,mBAAa,EAAC,QAAQ,CAAQ,uCAAC,CAAC;AACtD,CAAC;AAKM,KAAK,UAAU,mCAAmC,CAAC,IAAY;IACpE,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;IAC7D,OAAO,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC9B,CAAC;AAQD,SAAgB,iCAAiC;IAC/C,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,EAAE,CAAC;IAE1D,IAAI,CAAC,SAAS;QAAE,OAAO,KAAK,CAAC;IAC7B,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,MAAM,CAAC;IAC9C,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,MAAM,CAAC;IAC9C,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,MAAM,CAAC;IAC9C,IAAI,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC5C,IAAI,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC5C,IAAI,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC;QAAE,OAAO,UAAU,CAAC;IACtD,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,MAAM,CAAC;IAE9C,OAAO,KAAK,CAAC;AACf,CAAC","sourcesContent":["import fs from \"fs\";\nimport path from \"path\";\nimport { createRequire } from \"module\";\nimport { pathToFileURL } from \"url\";\n\nexport function getPackageJson() {\n try {\n const pkgPath = path.join(process.cwd(), \"package.json\");\n if (fs.existsSync(pkgPath)) {\n return JSON.parse(fs.readFileSync(pkgPath, \"utf8\"));\n }\n } catch (err) {\n console.error(\"Error checking package.json:\", err);\n }\n}\n\nexport function isEsm() {\n const pkg = getPackageJson();\n return pkg?.type === \"module\";\n}\n\nexport async function importModule(\n modulePath: string,\n options: { fixExtension: boolean } = { fixExtension: true }\n) {\n if (!options.fixExtension || modulePath.endsWith(\".ts\") || !isEsm())\n return await import(modulePath);\n\n // When importing user modules: mainly on ESM environment\n const userRequire = createRequire(\n pathToFileURL(process.cwd() + \"/package.json\")\n );\n const resolved = userRequire.resolve(modulePath);\n return await import(pathToFileURL(resolved) as any);\n}\n\n/**\n * This one was written for escaping esModules when imported on cjs\n */\nexport async function importEsmPreventingTsTransformation(path: string) {\n const importFn = new Function(\"path\", \"return import(path)\");\n return await importFn(path);\n}\n\n/**\n * Helps getting the current package manager from user agent\n *\n * @returns {string} the package manager\n * @default \"npm\"\n */\nexport function detectPackageManagerFromUserAgent(): string {\n const userAgent = process.env.npm_config_user_agent || \"\";\n\n if (!userAgent) return \"npm\";\n if (userAgent.includes(\"cnpm\")) return \"cnpm\";\n if (userAgent.includes(\"pnpm\")) return \"pnpm\";\n if (userAgent.includes(\"yarn\")) return \"yarn\";\n if (userAgent.includes(\"npm\")) return \"npm\";\n if (userAgent.includes(\"bun\")) return \"bun\";\n if (userAgent.includes(\"corepack\")) return \"corepack\";\n if (userAgent.includes(\"deno\")) return \"deno\";\n\n return \"npm\";\n}\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";var __importDefault=function(s){return s&&s.__esModule?s:{default:s}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.prismaModelsUniqueFields=exports.prismaSchemasContent=exports.models=exports.prismaModelRelationFields=void 0,exports.setModelModules=setModelModules,exports.getModelModules=getModelModules,exports.getFileModelModulesFileStructure=getFileModelModulesFileStructure,exports.processSubdir=processSubdir,exports.validateNamingConventions=validateNamingConventions,exports.assignModuleToResult=assignModuleToResult,exports.importPrismaModelModules=importPrismaModelModules,exports.getAllPrismaFiles=getAllPrismaFiles,exports.initializePrismaModels=initializePrismaModels,exports.getPrismaModelRelations=getPrismaModelRelations,exports.getPrismaSchemasContent=getPrismaSchemasContent,exports.localValidatorFileExists=localValidatorFileExists,exports.getModels=getModels,exports.getModelUniqueFields=getModelUniqueFields;const path_1=__importDefault(require("path")),fs_1=__importDefault(require("fs")),change_case_helpers_1=require("../../utils/helpers/change-case.helpers"),fs_helpers_1=require("./fs.helpers"),global_helpers_1=require("./global.helpers"),cli_helpers_1=require("../cli/utils/cli.helpers"),sheu_1=__importDefault(require("../sheu"));let prismaModelsModules={};function setModelModules(s,e){prismaModelsModules[(0,change_case_helpers_1.kebabCase)(s)]=e}function getModelModules(s){return prismaModelsModules[(0,change_case_helpers_1.kebabCase)(s)]}function getFileModelModulesFileStructure(s){const e=(0,change_case_helpers_1.kebabCase)(s).toLowerCase(),o=s.toLowerCase()==="auth",t=(0,fs_helpers_1.getUserFileExtension)();return{core:{service:`${e}.service.${t}`,controller:`${e}.controller.${t}`,middlewares:`${e}.middlewares.${t}`,authConfigs:`${e}.auth-configs.${t}`,authConfigsNew:`${e}.auth.${t}`,prismaQueryOptions:`${e}.prisma-query-options.${t}`,prismaQueryOptionsNew:`${e}.query.${t}`,router:`${e}.router.${t}`},dtos:o?{login:`login.dto.${t}`,signup:`signup.dto.${t}`,getMe:`get-me.dto.${t}`,updateMe:`update-me.dto.${t}`,updatePassword:`update-password.dto.${t}`}:{model:`${e}.dto.${t}`,create:`create-${e}.dto.${t}`,createOne:`create-${e}.dto.${t}`,createMany:`create-many-${e}.dto.${t}`,update:`update-${e}.dto.${t}`,updateOne:`update-${e}.dto.${t}`,updateMany:`update-many-${e}.dto.${t}`,query:`query-${e}.dto.${t}`,findOne:`find-one-${e}.dto.${t}`,findMany:`find-many-${e}.dto.${t}`},schemas:o?{login:`login.schema.${t}`,signup:`signup.schema.${t}`,getMe:`get-me.schema.${t}`,updateMe:`update-me.schema.${t}`,updatePassword:`update-password.schema.${t}`}:{model:`${e}.schema.${t}`,create:`create-${e}.schema.${t}`,createOne:`create-${e}.schema.${t}`,createMany:`create-many-${e}.schema.${t}`,update:`update-${e}.schema.${t}`,updateOne:`update-${e}.schema.${t}`,updateMany:`update-many-${e}.schema.${t}`,query:`query-${e}.schema.${t}`,findOne:`find-one-${e}.schema.${t}`,findMany:`find-many-${e}.schema.${t}`}}}async function processSubdir(s,e){const o=path_1.default.resolve((0,fs_helpers_1.crd)(),"src","modules",(0,change_case_helpers_1.kebabCase)(s)),t=path_1.default.join(o,e),n=getFileModelModulesFileStructure(s),a={};try{await fs_1.default.promises.access(t).catch(()=>{}),await Promise.all(Object.entries(n[e]).map(async([c,d])=>{const u=path_1.default.join(t,d);try{const r=await(0,global_helpers_1.importModule)(u).catch(l=>{l.message.includes("Cannot find module")||(sheu_1.default.error(`Failed to import ${d}:`),console.error(l),(0,cli_helpers_1.killServerChildProcess)(),process.exit(1))});r&&(a[c]=r.default)}catch(r){console.error(r)}}))}catch(c){console.error(c)}return a}function validateNamingConventions(s,e,o){if(s==="prismaQueryOptions"){if(o.prismaQueryOptions)throw(0,cli_helpers_1.killServerChildProcess)(),new Error(`
|
|
1
|
+
"use strict";var __importDefault=this&&this.__importDefault||function(s){return s&&s.__esModule?s:{default:s}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.prismaModelsUniqueFields=exports.prismaSchemasContent=exports.models=exports.prismaModelRelationFields=void 0,exports.setModelModules=setModelModules,exports.getModelModules=getModelModules,exports.getFileModelModulesFileStructure=getFileModelModulesFileStructure,exports.processSubdir=processSubdir,exports.validateNamingConventions=validateNamingConventions,exports.assignModuleToResult=assignModuleToResult,exports.importPrismaModelModules=importPrismaModelModules,exports.getAllPrismaFiles=getAllPrismaFiles,exports.initializePrismaModels=initializePrismaModels,exports.getPrismaModelRelations=getPrismaModelRelations,exports.getPrismaSchemasContent=getPrismaSchemasContent,exports.localValidatorFileExists=localValidatorFileExists,exports.getModels=getModels,exports.getModelUniqueFields=getModelUniqueFields;const path_1=__importDefault(require("path")),fs_1=__importDefault(require("fs")),change_case_helpers_1=require("../../utils/helpers/change-case.helpers"),fs_helpers_1=require("./fs.helpers"),global_helpers_1=require("./global.helpers"),cli_helpers_1=require("../cli/utils/cli.helpers"),sheu_1=__importDefault(require("../sheu"));let prismaModelsModules={};function setModelModules(s,e){prismaModelsModules[(0,change_case_helpers_1.kebabCase)(s)]=e}function getModelModules(s){return prismaModelsModules[(0,change_case_helpers_1.kebabCase)(s)]}function getFileModelModulesFileStructure(s){const e=(0,change_case_helpers_1.kebabCase)(s).toLowerCase(),o=s.toLowerCase()==="auth",t=(0,fs_helpers_1.getUserFileExtension)();return{core:{service:`${e}.service.${t}`,controller:`${e}.controller.${t}`,middlewares:`${e}.middlewares.${t}`,authConfigs:`${e}.auth-configs.${t}`,authConfigsNew:`${e}.auth.${t}`,prismaQueryOptions:`${e}.prisma-query-options.${t}`,prismaQueryOptionsNew:`${e}.query.${t}`,router:`${e}.router.${t}`},dtos:o?{login:`login.dto.${t}`,signup:`signup.dto.${t}`,getMe:`get-me.dto.${t}`,updateMe:`update-me.dto.${t}`,updatePassword:`update-password.dto.${t}`}:{model:`${e}.dto.${t}`,create:`create-${e}.dto.${t}`,createOne:`create-${e}.dto.${t}`,createMany:`create-many-${e}.dto.${t}`,update:`update-${e}.dto.${t}`,updateOne:`update-${e}.dto.${t}`,updateMany:`update-many-${e}.dto.${t}`,query:`query-${e}.dto.${t}`,findOne:`find-one-${e}.dto.${t}`,findMany:`find-many-${e}.dto.${t}`},schemas:o?{login:`login.schema.${t}`,signup:`signup.schema.${t}`,getMe:`get-me.schema.${t}`,updateMe:`update-me.schema.${t}`,updatePassword:`update-password.schema.${t}`}:{model:`${e}.schema.${t}`,create:`create-${e}.schema.${t}`,createOne:`create-${e}.schema.${t}`,createMany:`create-many-${e}.schema.${t}`,update:`update-${e}.schema.${t}`,updateOne:`update-${e}.schema.${t}`,updateMany:`update-many-${e}.schema.${t}`,query:`query-${e}.schema.${t}`,findOne:`find-one-${e}.schema.${t}`,findMany:`find-many-${e}.schema.${t}`}}}async function processSubdir(s,e){const o=path_1.default.resolve((0,fs_helpers_1.crd)(),"src","modules",(0,change_case_helpers_1.kebabCase)(s)),t=path_1.default.join(o,e),n=getFileModelModulesFileStructure(s),a={};try{await fs_1.default.promises.access(t).catch(()=>{}),await Promise.all(Object.entries(n[e]).map(async([c,d])=>{const u=path_1.default.join(t,d);try{const r=await(0,global_helpers_1.importModule)(u).catch(l=>{l.message.includes("Cannot find module")||(sheu_1.default.error(`Failed to import ${d}:`),console.error(l),(0,cli_helpers_1.killServerChildProcess)(),process.exit(1))});r&&(a[c]=r.default)}catch(r){console.error(r)}}))}catch(c){console.error(c)}return a}function validateNamingConventions(s,e,o){if(s==="prismaQueryOptions"){if(o.prismaQueryOptions)throw(0,cli_helpers_1.killServerChildProcess)(),new Error(`
|
|
2
2
|
Cannot use both ${e} and ${e.replace("prisma-query-options","query")} at once, please choose only one name convention.
|
|
3
3
|
`)}else if(s==="prismaQueryOptionsNew"){if(o.prismaQueryOptions)throw(0,cli_helpers_1.killServerChildProcess)(),new Error(`
|
|
4
4
|
Cannot use both ${e} and ${e.replace("query","prisma-query-options")} at once, please choose only one name convention.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var __importDefault=function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.checkDatabaseConnection=exports.prismaInstance=void 0,exports.loadPrismaModule=loadPrismaModule,exports.getPrismaInstance=getPrismaInstance;const fs_1=__importDefault(require("fs")),catch_async_1=__importDefault(require("../../modules/error-handler/utils/catch-async")),app_error_1=__importDefault(require("../../modules/error-handler/utils/app-error")),fs_helpers_1=require("./fs.helpers"),global_helpers_1=require("./global.helpers");exports.prismaInstance=null;async function loadPrismaModule(){if(!exports.prismaInstance)try{let e=`${(0,fs_helpers_1.crd)()}/src/utils/prisma.${(0,fs_helpers_1.getUserFileExtension)()}`;if(fs_1.default.existsSync(e)||(e=`${(0,fs_helpers_1.crd)()}/src/utils/prisma/index.${(0,fs_helpers_1.getUserFileExtension)()}`),!fs_1.default.existsSync(e))throw new Error(`Could not found exported prisma insteance at ${e}`);const r=await(0,global_helpers_1.importModule)(e,{fixExtension:!1});if(exports.prismaInstance=r.default||r.prisma,!exports.prismaInstance)throw new Error("Prisma not found")}catch(e){throw e.message==="Prisma not found"?new app_error_1.default(`Could not initialize Prisma module. Make sure your prisma instance is exported under src/utils/prisma.${(0,fs_helpers_1.getUserFileExtension)()} or src/utils/prisma/index.${(0,fs_helpers_1.getUserFileExtension)()}, read more about Arkos.js Project Structure under https://www.arkosjs.com/docs/project-structure#root-structure`,500,{},"PrismaInstanceNotFound"):e}return exports.prismaInstance}function getPrismaInstance(){return exports.prismaInstance}exports.checkDatabaseConnection=(0,catch_async_1.default)(async(e,r,s)=>{const a=await loadPrismaModule();try{await a.$connect(),s()}catch(t){console.error("Database connection error",t.message),s(new app_error_1.default(t.message,503))}});
|
|
1
|
+
"use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.checkDatabaseConnection=exports.prismaInstance=void 0,exports.loadPrismaModule=loadPrismaModule,exports.getPrismaInstance=getPrismaInstance;const fs_1=__importDefault(require("fs")),catch_async_1=__importDefault(require("../../modules/error-handler/utils/catch-async")),app_error_1=__importDefault(require("../../modules/error-handler/utils/app-error")),fs_helpers_1=require("./fs.helpers"),global_helpers_1=require("./global.helpers");exports.prismaInstance=null;async function loadPrismaModule(){if(!exports.prismaInstance)try{let e=`${(0,fs_helpers_1.crd)()}/src/utils/prisma.${(0,fs_helpers_1.getUserFileExtension)()}`;if(fs_1.default.existsSync(e)||(e=`${(0,fs_helpers_1.crd)()}/src/utils/prisma/index.${(0,fs_helpers_1.getUserFileExtension)()}`),!fs_1.default.existsSync(e))throw new Error(`Could not found exported prisma insteance at ${e}`);const r=await(0,global_helpers_1.importModule)(e,{fixExtension:!1});if(exports.prismaInstance=r.default||r.prisma,!exports.prismaInstance)throw new Error("Prisma not found")}catch(e){throw e.message==="Prisma not found"?new app_error_1.default(`Could not initialize Prisma module. Make sure your prisma instance is exported under src/utils/prisma.${(0,fs_helpers_1.getUserFileExtension)()} or src/utils/prisma/index.${(0,fs_helpers_1.getUserFileExtension)()}, read more about Arkos.js Project Structure under https://www.arkosjs.com/docs/project-structure#root-structure`,500,{},"PrismaInstanceNotFound"):e}return exports.prismaInstance}function getPrismaInstance(){return exports.prismaInstance}exports.checkDatabaseConnection=(0,catch_async_1.default)(async(e,r,s)=>{const a=await loadPrismaModule();try{await a.$connect(),s()}catch(t){console.error("Database connection error",t.message),s(new app_error_1.default(t.message,503))}});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var __importDefault=function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.processMiddleware=exports.safeCatchAsync=void 0;const catch_async_1=__importDefault(require("../../modules/error-handler/utils/catch-async")),safeCatchAsync=e=>e?(0,catch_async_1.default)(e):void 0;exports.safeCatchAsync=safeCatchAsync;const processMiddleware=e=>e?Array.isArray(e)?e.filter(s=>!!s).map(s=>(0,exports.safeCatchAsync)(s)):[(0,exports.safeCatchAsync)(e)]:[];exports.processMiddleware=processMiddleware;
|
|
1
|
+
"use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.processMiddleware=exports.safeCatchAsync=void 0;const catch_async_1=__importDefault(require("../../modules/error-handler/utils/catch-async")),safeCatchAsync=e=>e?(0,catch_async_1.default)(e):void 0;exports.safeCatchAsync=safeCatchAsync;const processMiddleware=e=>e?Array.isArray(e)?e.filter(s=>!!s).map(s=>(0,exports.safeCatchAsync)(s)):[(0,exports.safeCatchAsync)(e)]:[];exports.processMiddleware=processMiddleware;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var __importDefault=function(u){return u&&u.__esModule?u:{default:u}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.EnhancedPrismaJsonSchemaGenerator=void 0;const deepmerge_helper_1=__importDefault(require("../helpers/deepmerge.helper")),models_helpers_1=require("../helpers/models.helpers"),prisma_schema_parser_1=__importDefault(require("./prisma-schema-parser"));class EnhancedPrismaJsonSchemaGenerator{constructor(){this.schema=prisma_schema_parser_1.default.parse()}async generateModelSchemas(t){const{modelName:i,arkosConfig:e,schemasToGenerate:n=["model","login","signup","getMe","updateMe","updatePassword","create","createOne","createMany","update","updateOne","updateMany","query","findOne","findMany"]}=t,a=await(0,models_helpers_1.importPrismaModelModules)(i,e),s=a?.router?.config||{},r=a?.prismaQueryOptions||{},o=["auth","me","password","signup","login"].includes(i.toLowerCase());if(e?.swagger?.strict&&e.swagger.mode!=="prisma")return{};if(s?.disable===!0)return{};const d=this.schema.models.find(l=>l.name.toLowerCase()===i.toLowerCase());if(!d&&!o)return{};const p={};return o?await this.generateAuthSchemas(this.schema.models.find(l=>l.name.toLowerCase()==="user"),p,e,n,r):d&&await this.generateCrudSchemas(d,p,e,n,r,s),{...p}}async generateAuthSchemas(t,i,e,n,a,s){const r="Auth";if(!e?.authentication)return i;n.includes("login")&&!this.isEndpointDisabled("login",s)&&!await(0,models_helpers_1.localValidatorFileExists)("login",r,e)&&(i.LoginSchema=this.generateLoginSchema(e)),n.includes("signup")&&!this.isEndpointDisabled("signup",s)&&!await(0,models_helpers_1.localValidatorFileExists)("signup",r,e)&&(i.SignupSchema=this.generateSignupSchema(t,a?.signup)),n.includes("updateMe")&&!this.isEndpointDisabled("updateMe",s)&&!await(0,models_helpers_1.localValidatorFileExists)("updateMe",r,e)&&(i.UpdateMeSchema=this.generateUpdateMeSchema(t,a?.updateMe)),n.includes("updatePassword")&&!this.isEndpointDisabled("updatePassword",s)&&!await(0,models_helpers_1.localValidatorFileExists)("updatePassword",r,e)&&(i.UpdatePasswordSchema=this.generateUpdatePasswordSchema(t,a?.updatePassword)),n.includes("getMe")&&!this.isEndpointDisabled("getMe",s)&&!await(0,models_helpers_1.localValidatorFileExists)("getMe",r,e)&&(i.GetMeSchema=this.generateResponseSchema(t,a?.getMe||{},"findOne"))}async generateCrudSchemas(t,i,e,n,a,s){const r=t.name,c=async(o,d)=>{const p=e.validation?.resolver==="zod"?"Schema":"Dto",l=o==="Create"?"createOne":"updateOne";if(await(0,models_helpers_1.localValidatorFileExists)(l,d,e))return`${o}${d}${p}`;{const m=`${o}${d}ModelSchema`;return i[m]||(o==="Create"?i[m]=this.generateCreateSchema(t,this.resolvePrismaQueryOptions(a,"createOne")):o==="Update"&&(i[m]=this.generateUpdateSchema(t,this.resolvePrismaQueryOptions(a,"updateOne")))),m}};if(n.includes("createOne")&&!this.isEndpointDisabled("createOne",s)&&!await(0,models_helpers_1.localValidatorFileExists)("createOne",r,e)&&(i[`Create${r}ModelSchema`]=this.generateCreateSchema(t,this.resolvePrismaQueryOptions(a,"createOne"))),n.includes("createMany")&&!this.isEndpointDisabled("createMany",s)&&!await(0,models_helpers_1.localValidatorFileExists)("createMany",r,e)){const o=await c("Create",r);i[`CreateMany${r}ModelSchema`]={type:"array",items:{$ref:`#/components/schemas/${o}`}}}if(n.includes("updateOne")&&!this.isEndpointDisabled("updateOne",s)&&!await(0,models_helpers_1.localValidatorFileExists)("updateOne",r,e)&&(i[`Update${r}ModelSchema`]=this.generateUpdateSchema(t,this.resolvePrismaQueryOptions(a,"updateOne"))),n.includes("updateMany")&&!this.isEndpointDisabled("updateMany",s)&&!await(0,models_helpers_1.localValidatorFileExists)("updateMany",r,e)){const o=await c("Update",r);i[`UpdateMany${r}ModelSchema`]={type:"object",properties:{data:{type:"object",$ref:`#/components/schemas/${o}`},where:{type:"object"}},required:["data"]}}n.includes("findOne")&&!this.isEndpointDisabled("findOne",s)&&!await(0,models_helpers_1.localValidatorFileExists)("findOne",r,e)&&(i[`FindOne${r}ModelSchema`]=this.generateResponseSchema(t,this.resolvePrismaQueryOptions(a,"findOne"),"findOne")),n.includes("findMany")&&!this.isEndpointDisabled("findMany",s)&&!await(0,models_helpers_1.localValidatorFileExists)("findMany",r,e)&&(i[`FindMany${r}ModelSchema`]={type:"array",items:this.generateResponseSchema(t,this.resolvePrismaQueryOptions(a,"findMany"),"findMany")})}generateCreateSchema(t,i){const e={},n=[],a=["createdAt","updatedAt","deletedAt","id"];t.name.toLowerCase()==="auth"&&a.push("roles","role","isActive","isStaff","isSuperUser","passwordChangedAt","deletedSelfAccountAt","lastLoginAt");for(const s of t.fields){if(s.isId||a.includes(s.name))continue;if(this.isModelRelation(s.type)){s.isArray||(e[s.connectionField]={type:this.mapPrismaTypeToJsonSchema(t.fields.find(c=>c.name===s.connectionField)?.type||"String")},!s.isOptional&&s.defaultValue===void 0&&n.push(s.name));continue}const r=this.convertFieldToJsonSchema(s);e[s.name]=r,!s.isOptional&&s.defaultValue===void 0&&!s.isArray&&n.push(s.name)}return{type:"object",properties:e,required:n}}generateUpdateSchema(t,i){const e={},n=["createdAt","updatedAt","deletedAt","id"];for(const a of t.fields){if(a.isId||n.includes(a.name))continue;if(this.isModelRelation(a.type)){a.isArray||(e[a.connectionField]={type:this.mapPrismaTypeToJsonSchema(t.fields.find(r=>r.name===a.connectionField)?.type||"String")});continue}const s=this.convertFieldToJsonSchema(a);e[a.name]=s}return{type:"object",properties:e,required:[]}}generateResponseSchema(t,i,e){const n={},a=[],s=i?.select,r=i?.omit,c=i?.include;for(const o of t.fields){if(o.name==="password"||r&&r[o.name]||s&&!s[o.name])continue;if(this.isModelRelation(o.type)){if(c?.[o.name]){const p=this.schema.models.find(l=>l.name===o.type);if(p){const l=this.generateNestedRelationSchema(p,c[o.name]);n[o.name]=o.isArray?{type:"array",items:l}:l}}continue}const d=this.convertFieldToJsonSchema(o);n[o.name]=d,o.isOptional||a.push(o.name)}return{type:"object",properties:n,required:a}}generateNestedRelationSchema(t,i){const e={},n=[],a=i?.select,s=i?.include;for(const r of t.fields){if(r.name.toLowerCase().includes("password")||a&&!a[r.name])continue;if(this.isModelRelation(r.type)){if(s?.[r.name]){const o=this.schema.models.find(d=>d.name===r.type);if(o){const d=this.generateNestedRelationSchema(o,s[r.name]);e[r.name]=r.isArray?{type:"array",items:d}:d}}continue}const c=this.convertFieldToJsonSchema(r);e[r.name]=c,r.isOptional||n.push(r.name)}return{type:"object",properties:e,required:n}}generateLoginSchema(t){const i=t?.authentication?.login?.allowedUsernames||[],e=a=>a.includes(".")&&a.split(".").pop()||a,n={type:"object",properties:{password:{type:"string",minLength:8}},required:["password"]};if(i.forEach(a=>{const s=e(a);n.properties[s]={type:"string",format:"string",description:`Username field: ${a}`}}),i.length>0){const a=i.map(e);return{...n,anyOf:a.map(()=>({required:[...n.required]}))}}return n}generateSignupSchema(t,i){const e=this.generateCreateSchema(t,i||{});return["roles","role","isActive","isStaff","isSuperUser","passwordChangedAt","deletedSelfAccountAt","lastLoginAt"].forEach(a=>{delete e?.properties?.[a]}),e}generateUpdateMeSchema(t,i){const e=this.generateUpdateSchema(t,i||{});return["roles","role","isActive","isStaff","isSuperUser","passwordChangedAt","deletedSelfAccountAt","password","lastLoginAt"].forEach(a=>{delete e?.properties?.[a]}),e}generateUpdatePasswordSchema(t,i){return{type:"object",properties:{currentPassword:{type:"string"},newPassword:{type:"string",minLength:8}},required:["currentPassword","newPassword"]}}resolvePrismaQueryOptions(t,i){if(!t||!i)return{};const e=t,n=e[i]||{};let a=e.queryOptions||{};e.global&&(a=(0,deepmerge_helper_1.default)(a,e.global));const s=this.getGeneralOptionsForAction(e,i);return s&&(a=(0,deepmerge_helper_1.default)(a,s)),n&&(a=(0,deepmerge_helper_1.default)(a,n)),a}getGeneralOptionsForAction(t,i){const e={find:["findOne","findMany"],create:["createOne","createMany"],update:["updateOne","updateMany"],delete:["deleteOne","deleteMany"],save:["createOne","createMany","updateOne","updateMany"],saveOne:["createOne","updateOne"],saveMany:["createMany","updateMany"]};for(const[n,a]of Object.entries(e))if(a.includes(i)&&t[n])return t[n];return null}isEndpointDisabled(t,i){return i?.disable?typeof i.disable=="boolean"?i.disable:i.disable[t]||!1:!1}isModelRelation(t){return this.schema.models.some(i=>i.name===t)}convertFieldToJsonSchema(t){const e={type:this.mapPrismaTypeToJsonSchema(t.type)};if(t.isArray&&(e.type="array",e.items={type:this.mapPrismaTypeToJsonSchema(t.type)}),t.defaultValue!==void 0&&(e.default=t.defaultValue),t.type==="DateTime"&&(e.format="date-time"),this.isEnum(t.type)){const n=this.schema.enums.find(a=>a.name===t.type);n&&(e.enum=n.values)}return e}mapPrismaTypeToJsonSchema(t){const i={String:"string",Int:"number",Float:"number",Boolean:"boolean",DateTime:"string",Json:"object",Bytes:"string"};return i[t]?i[t]:this.isEnum(t)?"string":this.isModelRelation(t)?"object":"string"}isEnum(t){return this.schema.enums.some(i=>i.name===t)}}exports.EnhancedPrismaJsonSchemaGenerator=EnhancedPrismaJsonSchemaGenerator;const enhancedPrismaJsonSchemaGenerator=new EnhancedPrismaJsonSchemaGenerator;exports.default=enhancedPrismaJsonSchemaGenerator;
|
|
1
|
+
"use strict";var __importDefault=this&&this.__importDefault||function(u){return u&&u.__esModule?u:{default:u}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.EnhancedPrismaJsonSchemaGenerator=void 0;const deepmerge_helper_1=__importDefault(require("../helpers/deepmerge.helper")),models_helpers_1=require("../helpers/models.helpers"),prisma_schema_parser_1=__importDefault(require("./prisma-schema-parser"));class EnhancedPrismaJsonSchemaGenerator{constructor(){this.schema=prisma_schema_parser_1.default.parse()}async generateModelSchemas(t){const{modelName:i,arkosConfig:e,schemasToGenerate:n=["model","login","signup","getMe","updateMe","updatePassword","create","createOne","createMany","update","updateOne","updateMany","query","findOne","findMany"]}=t,a=await(0,models_helpers_1.importPrismaModelModules)(i,e),s=a?.router?.config||{},r=a?.prismaQueryOptions||{},o=["auth","me","password","signup","login"].includes(i.toLowerCase());if(e?.swagger?.strict&&e.swagger.mode!=="prisma")return{};if(s?.disable===!0)return{};const d=this.schema.models.find(l=>l.name.toLowerCase()===i.toLowerCase());if(!d&&!o)return{};const p={};return o?await this.generateAuthSchemas(this.schema.models.find(l=>l.name.toLowerCase()==="user"),p,e,n,r):d&&await this.generateCrudSchemas(d,p,e,n,r,s),{...p}}async generateAuthSchemas(t,i,e,n,a,s){const r="Auth";if(!e?.authentication)return i;n.includes("login")&&!this.isEndpointDisabled("login",s)&&!await(0,models_helpers_1.localValidatorFileExists)("login",r,e)&&(i.LoginSchema=this.generateLoginSchema(e)),n.includes("signup")&&!this.isEndpointDisabled("signup",s)&&!await(0,models_helpers_1.localValidatorFileExists)("signup",r,e)&&(i.SignupSchema=this.generateSignupSchema(t,a?.signup)),n.includes("updateMe")&&!this.isEndpointDisabled("updateMe",s)&&!await(0,models_helpers_1.localValidatorFileExists)("updateMe",r,e)&&(i.UpdateMeSchema=this.generateUpdateMeSchema(t,a?.updateMe)),n.includes("updatePassword")&&!this.isEndpointDisabled("updatePassword",s)&&!await(0,models_helpers_1.localValidatorFileExists)("updatePassword",r,e)&&(i.UpdatePasswordSchema=this.generateUpdatePasswordSchema(t,a?.updatePassword)),n.includes("getMe")&&!this.isEndpointDisabled("getMe",s)&&!await(0,models_helpers_1.localValidatorFileExists)("getMe",r,e)&&(i.GetMeSchema=this.generateResponseSchema(t,a?.getMe||{},"findOne"))}async generateCrudSchemas(t,i,e,n,a,s){const r=t.name,c=async(o,d)=>{const p=e.validation?.resolver==="zod"?"Schema":"Dto",l=o==="Create"?"createOne":"updateOne";if(await(0,models_helpers_1.localValidatorFileExists)(l,d,e))return`${o}${d}${p}`;{const m=`${o}${d}ModelSchema`;return i[m]||(o==="Create"?i[m]=this.generateCreateSchema(t,this.resolvePrismaQueryOptions(a,"createOne")):o==="Update"&&(i[m]=this.generateUpdateSchema(t,this.resolvePrismaQueryOptions(a,"updateOne")))),m}};if(n.includes("createOne")&&!this.isEndpointDisabled("createOne",s)&&!await(0,models_helpers_1.localValidatorFileExists)("createOne",r,e)&&(i[`Create${r}ModelSchema`]=this.generateCreateSchema(t,this.resolvePrismaQueryOptions(a,"createOne"))),n.includes("createMany")&&!this.isEndpointDisabled("createMany",s)&&!await(0,models_helpers_1.localValidatorFileExists)("createMany",r,e)){const o=await c("Create",r);i[`CreateMany${r}ModelSchema`]={type:"array",items:{$ref:`#/components/schemas/${o}`}}}if(n.includes("updateOne")&&!this.isEndpointDisabled("updateOne",s)&&!await(0,models_helpers_1.localValidatorFileExists)("updateOne",r,e)&&(i[`Update${r}ModelSchema`]=this.generateUpdateSchema(t,this.resolvePrismaQueryOptions(a,"updateOne"))),n.includes("updateMany")&&!this.isEndpointDisabled("updateMany",s)&&!await(0,models_helpers_1.localValidatorFileExists)("updateMany",r,e)){const o=await c("Update",r);i[`UpdateMany${r}ModelSchema`]={type:"object",properties:{data:{type:"object",$ref:`#/components/schemas/${o}`},where:{type:"object"}},required:["data"]}}n.includes("findOne")&&!this.isEndpointDisabled("findOne",s)&&!await(0,models_helpers_1.localValidatorFileExists)("findOne",r,e)&&(i[`FindOne${r}ModelSchema`]=this.generateResponseSchema(t,this.resolvePrismaQueryOptions(a,"findOne"),"findOne")),n.includes("findMany")&&!this.isEndpointDisabled("findMany",s)&&!await(0,models_helpers_1.localValidatorFileExists)("findMany",r,e)&&(i[`FindMany${r}ModelSchema`]={type:"array",items:this.generateResponseSchema(t,this.resolvePrismaQueryOptions(a,"findMany"),"findMany")})}generateCreateSchema(t,i){const e={},n=[],a=["createdAt","updatedAt","deletedAt","id"];t.name.toLowerCase()==="auth"&&a.push("roles","role","isActive","isStaff","isSuperUser","passwordChangedAt","deletedSelfAccountAt","lastLoginAt");for(const s of t.fields){if(s.isId||a.includes(s.name))continue;if(this.isModelRelation(s.type)){s.isArray||(e[s.connectionField]={type:this.mapPrismaTypeToJsonSchema(t.fields.find(c=>c.name===s.connectionField)?.type||"String")},!s.isOptional&&s.defaultValue===void 0&&n.push(s.name));continue}const r=this.convertFieldToJsonSchema(s);e[s.name]=r,!s.isOptional&&s.defaultValue===void 0&&!s.isArray&&n.push(s.name)}return{type:"object",properties:e,required:n}}generateUpdateSchema(t,i){const e={},n=["createdAt","updatedAt","deletedAt","id"];for(const a of t.fields){if(a.isId||n.includes(a.name))continue;if(this.isModelRelation(a.type)){a.isArray||(e[a.connectionField]={type:this.mapPrismaTypeToJsonSchema(t.fields.find(r=>r.name===a.connectionField)?.type||"String")});continue}const s=this.convertFieldToJsonSchema(a);e[a.name]=s}return{type:"object",properties:e,required:[]}}generateResponseSchema(t,i,e){const n={},a=[],s=i?.select,r=i?.omit,c=i?.include;for(const o of t.fields){if(o.name==="password"||r&&r[o.name]||s&&!s[o.name])continue;if(this.isModelRelation(o.type)){if(c?.[o.name]){const p=this.schema.models.find(l=>l.name===o.type);if(p){const l=this.generateNestedRelationSchema(p,c[o.name]);n[o.name]=o.isArray?{type:"array",items:l}:l}}continue}const d=this.convertFieldToJsonSchema(o);n[o.name]=d,o.isOptional||a.push(o.name)}return{type:"object",properties:n,required:a}}generateNestedRelationSchema(t,i){const e={},n=[],a=i?.select,s=i?.include;for(const r of t.fields){if(r.name.toLowerCase().includes("password")||a&&!a[r.name])continue;if(this.isModelRelation(r.type)){if(s?.[r.name]){const o=this.schema.models.find(d=>d.name===r.type);if(o){const d=this.generateNestedRelationSchema(o,s[r.name]);e[r.name]=r.isArray?{type:"array",items:d}:d}}continue}const c=this.convertFieldToJsonSchema(r);e[r.name]=c,r.isOptional||n.push(r.name)}return{type:"object",properties:e,required:n}}generateLoginSchema(t){const i=t?.authentication?.login?.allowedUsernames||[],e=a=>a.includes(".")&&a.split(".").pop()||a,n={type:"object",properties:{password:{type:"string",minLength:8}},required:["password"]};if(i.forEach(a=>{const s=e(a);n.properties[s]={type:"string",format:"string",description:`Username field: ${a}`}}),i.length>0){const a=i.map(e);return{...n,anyOf:a.map(()=>({required:[...n.required]}))}}return n}generateSignupSchema(t,i){const e=this.generateCreateSchema(t,i||{});return["roles","role","isActive","isStaff","isSuperUser","passwordChangedAt","deletedSelfAccountAt","lastLoginAt"].forEach(a=>{delete e?.properties?.[a]}),e}generateUpdateMeSchema(t,i){const e=this.generateUpdateSchema(t,i||{});return["roles","role","isActive","isStaff","isSuperUser","passwordChangedAt","deletedSelfAccountAt","password","lastLoginAt"].forEach(a=>{delete e?.properties?.[a]}),e}generateUpdatePasswordSchema(t,i){return{type:"object",properties:{currentPassword:{type:"string"},newPassword:{type:"string",minLength:8}},required:["currentPassword","newPassword"]}}resolvePrismaQueryOptions(t,i){if(!t||!i)return{};const e=t,n=e[i]||{};let a=e.queryOptions||{};e.global&&(a=(0,deepmerge_helper_1.default)(a,e.global));const s=this.getGeneralOptionsForAction(e,i);return s&&(a=(0,deepmerge_helper_1.default)(a,s)),n&&(a=(0,deepmerge_helper_1.default)(a,n)),a}getGeneralOptionsForAction(t,i){const e={find:["findOne","findMany"],create:["createOne","createMany"],update:["updateOne","updateMany"],delete:["deleteOne","deleteMany"],save:["createOne","createMany","updateOne","updateMany"],saveOne:["createOne","updateOne"],saveMany:["createMany","updateMany"]};for(const[n,a]of Object.entries(e))if(a.includes(i)&&t[n])return t[n];return null}isEndpointDisabled(t,i){return i?.disable?typeof i.disable=="boolean"?i.disable:i.disable[t]||!1:!1}isModelRelation(t){return this.schema.models.some(i=>i.name===t)}convertFieldToJsonSchema(t){const e={type:this.mapPrismaTypeToJsonSchema(t.type)};if(t.isArray&&(e.type="array",e.items={type:this.mapPrismaTypeToJsonSchema(t.type)}),t.defaultValue!==void 0&&(e.default=t.defaultValue),t.type==="DateTime"&&(e.format="date-time"),this.isEnum(t.type)){const n=this.schema.enums.find(a=>a.name===t.type);n&&(e.enum=n.values)}return e}mapPrismaTypeToJsonSchema(t){const i={String:"string",Int:"number",Float:"number",Boolean:"boolean",DateTime:"string",Json:"object",Bytes:"string"};return i[t]?i[t]:this.isEnum(t)?"string":this.isModelRelation(t)?"object":"string"}isEnum(t){return this.schema.enums.some(i=>i.name===t)}}exports.EnhancedPrismaJsonSchemaGenerator=EnhancedPrismaJsonSchemaGenerator;const enhancedPrismaJsonSchemaGenerator=new EnhancedPrismaJsonSchemaGenerator;exports.default=enhancedPrismaJsonSchemaGenerator;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var __importDefault=function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=validateDto;const class_transformer_1=require("class-transformer"),class_validator_1=require("class-validator"),app_error_1=__importDefault(require("../modules/error-handler/utils/app-error"));async function validateDto(e,a,s){const r=(0,class_transformer_1.plainToInstance)(e,a),t=await(0,class_validator_1.validate)(r,s);if(t.length>0)throw new app_error_1.default("Invalid request body",400,t,"invalid_request_body");return r}
|
|
1
|
+
"use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=validateDto;const class_transformer_1=require("class-transformer"),class_validator_1=require("class-validator"),app_error_1=__importDefault(require("../modules/error-handler/utils/app-error"));async function validateDto(e,a,s){const r=(0,class_transformer_1.plainToInstance)(e,a),t=await(0,class_validator_1.validate)(r,s);if(t.length>0)throw new app_error_1.default("Invalid request body",400,t,"invalid_request_body");return r}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var __importDefault=function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=validateSchema;const app_error_1=__importDefault(require("../modules/error-handler/utils/app-error"));async function validateSchema(e,t){const r=e.safeParse(t);if(!r.success)throw new app_error_1.default("Invalid request body",400,r.error.format(),"invalid_request_body");return r.data}
|
|
1
|
+
"use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=validateSchema;const app_error_1=__importDefault(require("../modules/error-handler/utils/app-error"));async function validateSchema(e,t){const r=e.safeParse(t);if(!r.success)throw new app_error_1.default("Invalid request body",400,r.error.format(),"invalid_request_body");return r.data}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";import{Router as
|
|
1
|
+
"use strict";import{Router as m}from"express";import c from"swagger-jsdoc";import f from"../../utils/helpers/deepmerge.helper.js";import{generatePathsForModels as p,getOpenAPIJsonSchemasByConfigMode as w}from"./utils/helpers/swagger.router.helpers.js";import d from"./utils/helpers/missing-json-schemas-generator.js";import u from"./utils/helpers/get-swagger-default-configs.js";import{importEsmPreventingTsTransformation as l}from"../../utils/helpers/global.helpers.js";const n=m();export async function getSwaggerRouter(e){let t=await w(e);const r=await p(e);t={...t,...await d.generateMissingJsonSchemas(r,t,e)};const o=f(await u(r,t)||{},e.swagger||{}),{definition:a,...i}=o?.options,s=c({definition:a,...i}),g=await l("@scalar/express-api-reference");return n.use(o.endpoint,g.apiReference({content:s,...o?.scalarApiReferenceConfiguration})),n}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"swagger.router.js","sourceRoot":"","sources":["../../../../src/modules/swagger/swagger.router.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,YAAY,MAAM,eAAe,CAAC;AAEzC,OAAO,SAAS,MAAM,sCAAsC,CAAC;AAC7D,OAAO,EACL,sBAAsB,EACtB,iCAAiC,GAClC,MAAM,wCAAwC,CAAC;AAChD,OAAO,0BAA0B,MAAM,gDAAgD,CAAC;AACxF,OAAO,uBAAuB,MAAM,6CAA6C,CAAC;AAClF,OAAO,
|
|
1
|
+
{"version":3,"file":"swagger.router.js","sourceRoot":"","sources":["../../../../src/modules/swagger/swagger.router.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,YAAY,MAAM,eAAe,CAAC;AAEzC,OAAO,SAAS,MAAM,sCAAsC,CAAC;AAC7D,OAAO,EACL,sBAAsB,EACtB,iCAAiC,GAClC,MAAM,wCAAwC,CAAC;AAChD,OAAO,0BAA0B,MAAM,gDAAgD,CAAC;AACxF,OAAO,uBAAuB,MAAM,6CAA6C,CAAC;AAClF,OAAO,EAAE,mCAAmC,EAAE,MAAM,oCAAoC,CAAC;AAEzF,MAAM,aAAa,GAAG,MAAM,EAAE,CAAC;AAE/B,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,WAAwB;IAExB,IAAI,kBAAkB,GAAG,MAAM,iCAAiC,CAAC,WAAW,CAAC,CAAC;IAC9E,MAAM,kBAAkB,GAAG,MAAM,sBAAsB,CAAC,WAAW,CAAC,CAAC;IAErE,kBAAkB,GAAG;QACnB,GAAG,kBAAkB;QACrB,GAAG,CAAC,MAAM,0BAA0B,CAAC,0BAA0B,CAC7D,kBAAkB,EAClB,kBAAkB,EAClB,WAAW,CACZ,CAAC;KACH,CAAC;IAGF,MAAM,cAAc,GAAG,SAAS,CAC9B,CAAC,MAAM,uBAAuB,CAAC,kBAAkB,EAAE,kBAAkB,CAAC,CAAC;QACrE,EAAE,EACJ,WAAW,CAAC,OAAO,IAAI,EAAE,CACA,CAAC;IAE5B,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,EAAE,GAAG,cAAc,EAAE,OAAQ,CAAC;IAG5D,MAAM,oBAAoB,GAAG,YAAY,CAAC;QACxC,UAAU,EAAE,UAA4C;QACxD,GAAG,OAAO;KACX,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,MAAM,mCAAmC,CACtD,+BAA+B,CAChC,CAAC;IAEF,aAAa,CAAC,GAAG,CACf,cAAe,CAAC,QAAS,EACzB,MAAM,CAAC,YAAY,CAAC;QAClB,OAAO,EAAE,oBAAoB;QAC7B,GAAG,cAAc,EAAE,+BAA+B;KACnD,CAAC,CACH,CAAC;IAEF,OAAO,aAAa,CAAC;AACvB,CAAC","sourcesContent":["import { Router } from \"express\";\nimport swaggerJsdoc from \"swagger-jsdoc\";\nimport { ArkosConfig } from \"../../types/arkos-config\";\nimport deepmerge from \"../../utils/helpers/deepmerge.helper\";\nimport {\n generatePathsForModels,\n getOpenAPIJsonSchemasByConfigMode,\n} from \"./utils/helpers/swagger.router.helpers\";\nimport missingJsonSchemaGenerator from \"./utils/helpers/missing-json-schemas-generator\";\nimport getSwaggerDefaultConfig from \"./utils/helpers/get-swagger-default-configs\";\nimport { importEsmPreventingTsTransformation } from \"../../utils/helpers/global.helpers\";\n\nconst swaggerRouter = Router();\n\nexport async function getSwaggerRouter(\n arkosConfig: ArkosConfig\n): Promise<Router> {\n let defaultJsonSchemas = await getOpenAPIJsonSchemasByConfigMode(arkosConfig);\n const defaultModelsPaths = await generatePathsForModels(arkosConfig);\n\n defaultJsonSchemas = {\n ...defaultJsonSchemas,\n ...(await missingJsonSchemaGenerator.generateMissingJsonSchemas(\n defaultModelsPaths,\n defaultJsonSchemas,\n arkosConfig\n )),\n };\n\n // Merge default config with user config\n const swaggerConfigs = deepmerge(\n (await getSwaggerDefaultConfig(defaultModelsPaths, defaultJsonSchemas)) ||\n {},\n arkosConfig.swagger || {}\n ) as ArkosConfig[\"swagger\"];\n\n const { definition, ...options } = swaggerConfigs?.options!;\n\n // Generate OpenAPI specification using swagger-jsdoc\n const swaggerSpecification = swaggerJsdoc({\n definition: definition as swaggerJsdoc.SwaggerDefinition,\n ...options,\n });\n\n const scalar = await importEsmPreventingTsTransformation(\n \"@scalar/express-api-reference\"\n );\n // Serve Scalar API documentation\n swaggerRouter.use(\n swaggerConfigs!.endpoint!,\n scalar.apiReference({\n content: swaggerSpecification,\n ...swaggerConfigs?.scalarApiReferenceConfiguration,\n })\n );\n\n return swaggerRouter;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";import e from"fs";import{killDevelopmentServerChildProcess as o}from"../dev.js";import{killProductionServerChildProcess as i}from"../start.js";export function ensureDirectoryExists(r){e.existsSync(r)||e.mkdirSync(r,{recursive:!0})}export function killServerChildProcess(){o(),i()}export function getVersion(){return"1.2.15-test.
|
|
1
|
+
"use strict";import e from"fs";import{killDevelopmentServerChildProcess as o}from"../dev.js";import{killProductionServerChildProcess as i}from"../start.js";export function ensureDirectoryExists(r){e.existsSync(r)||e.mkdirSync(r,{recursive:!0})}export function killServerChildProcess(){o(),i()}export function getVersion(){return"1.2.15-test.4"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";import
|
|
1
|
+
"use strict";import e from"fs";import i from"path";import{createRequire as c}from"module";import{pathToFileURL as t}from"url";export function getPackageJson(){try{const r=i.join(process.cwd(),"package.json");if(e.existsSync(r))return JSON.parse(e.readFileSync(r,"utf8"))}catch(r){console.error("Error checking package.json:",r)}}export function isEsm(){return getPackageJson()?.type==="module"}export async function importModule(r,n={fixExtension:!0}){if(!n.fixExtension||r.endsWith(".ts")||!isEsm())return await import(r);const o=c(t(process.cwd()+"/package.json")).resolve(r);return await import(t(o))}export async function importEsmPreventingTsTransformation(r){return await new Function("path","return import(path)")(r)}export function detectPackageManagerFromUserAgent(){const r=process.env.npm_config_user_agent||"";return r?r.includes("cnpm")?"cnpm":r.includes("pnpm")?"pnpm":r.includes("yarn")?"yarn":r.includes("npm")?"npm":r.includes("bun")?"bun":r.includes("corepack")?"corepack":r.includes("deno")?"deno":"npm":"npm"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"global.helpers.js","sourceRoot":"","sources":["../../../../src/utils/helpers/global.helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAEpC,MAAM,UAAU,cAAc;IAC5B,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,CAAC,CAAC;QACzD,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3B,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;QACtD,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE,GAAG,CAAC,CAAC;IACrD,CAAC;AACH,CAAC;AAED,MAAM,UAAU,KAAK;IACnB,MAAM,GAAG,GAAG,cAAc,EAAE,CAAC;IAC7B,OAAO,GAAG,EAAE,IAAI,KAAK,QAAQ,CAAC;AAChC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,UAAkB,EAClB,UAAqC,EAAE,YAAY,EAAE,IAAI,EAAE;IAE3D,IAAI,CAAC,OAAO,CAAC,YAAY,IAAI,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE;QACjE,OAAO,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC;IAGlC,MAAM,WAAW,GAAG,aAAa,CAC/B,aAAa,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,eAAe,CAAC,CAC/C,CAAC;IACF,MAAM,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACjD,OAAO,MAAM,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAQ,CAAC,CAAC;AACtD,CAAC;AAQD,MAAM,UAAU,iCAAiC;IAC/C,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,EAAE,CAAC;IAE1D,IAAI,CAAC,SAAS;QAAE,OAAO,KAAK,CAAC;IAC7B,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,MAAM,CAAC;IAC9C,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,MAAM,CAAC;IAC9C,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,MAAM,CAAC;IAC9C,IAAI,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC5C,IAAI,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC5C,IAAI,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC;QAAE,OAAO,UAAU,CAAC;IACtD,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,MAAM,CAAC;IAE9C,OAAO,KAAK,CAAC;AACf,CAAC","sourcesContent":["import fs from \"fs\";\nimport path from \"path\";\nimport { createRequire } from \"module\";\nimport { pathToFileURL } from \"url\";\n\nexport function getPackageJson() {\n try {\n const pkgPath = path.join(process.cwd(), \"package.json\");\n if (fs.existsSync(pkgPath)) {\n return JSON.parse(fs.readFileSync(pkgPath, \"utf8\"));\n }\n } catch (err) {\n console.error(\"Error checking package.json:\", err);\n }\n}\n\nexport function isEsm() {\n const pkg = getPackageJson();\n return pkg?.type === \"module\";\n}\n\nexport async function importModule(\n modulePath: string,\n options: { fixExtension: boolean } = { fixExtension: true }\n) {\n if (!options.fixExtension || modulePath.endsWith(\".ts\") || !isEsm())\n return await import(modulePath);\n\n // When importing user modules: mainly on ESM environment\n const userRequire = createRequire(\n pathToFileURL(process.cwd() + \"/package.json\")\n );\n const resolved = userRequire.resolve(modulePath);\n return await import(pathToFileURL(resolved) as any);\n}\n\n/**\n * Helps getting the current package manager from user agent\n *\n * @returns {string} the package manager\n * @default \"npm\"\n */\nexport function detectPackageManagerFromUserAgent(): string {\n const userAgent = process.env.npm_config_user_agent || \"\";\n\n if (!userAgent) return \"npm\";\n if (userAgent.includes(\"cnpm\")) return \"cnpm\";\n if (userAgent.includes(\"pnpm\")) return \"pnpm\";\n if (userAgent.includes(\"yarn\")) return \"yarn\";\n if (userAgent.includes(\"npm\")) return \"npm\";\n if (userAgent.includes(\"bun\")) return \"bun\";\n if (userAgent.includes(\"corepack\")) return \"corepack\";\n if (userAgent.includes(\"deno\")) return \"deno\";\n\n return \"npm\";\n}\n"]}
|
|
1
|
+
{"version":3,"file":"global.helpers.js","sourceRoot":"","sources":["../../../../src/utils/helpers/global.helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAEpC,MAAM,UAAU,cAAc;IAC5B,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,CAAC,CAAC;QACzD,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3B,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;QACtD,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE,GAAG,CAAC,CAAC;IACrD,CAAC;AACH,CAAC;AAED,MAAM,UAAU,KAAK;IACnB,MAAM,GAAG,GAAG,cAAc,EAAE,CAAC;IAC7B,OAAO,GAAG,EAAE,IAAI,KAAK,QAAQ,CAAC;AAChC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,UAAkB,EAClB,UAAqC,EAAE,YAAY,EAAE,IAAI,EAAE;IAE3D,IAAI,CAAC,OAAO,CAAC,YAAY,IAAI,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE;QACjE,OAAO,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC;IAGlC,MAAM,WAAW,GAAG,aAAa,CAC/B,aAAa,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,eAAe,CAAC,CAC/C,CAAC;IACF,MAAM,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACjD,OAAO,MAAM,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAQ,CAAC,CAAC;AACtD,CAAC;AAKD,MAAM,CAAC,KAAK,UAAU,mCAAmC,CAAC,IAAY;IACpE,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;IAC7D,OAAO,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC9B,CAAC;AAQD,MAAM,UAAU,iCAAiC;IAC/C,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,EAAE,CAAC;IAE1D,IAAI,CAAC,SAAS;QAAE,OAAO,KAAK,CAAC;IAC7B,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,MAAM,CAAC;IAC9C,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,MAAM,CAAC;IAC9C,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,MAAM,CAAC;IAC9C,IAAI,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC5C,IAAI,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC5C,IAAI,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC;QAAE,OAAO,UAAU,CAAC;IACtD,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,MAAM,CAAC;IAE9C,OAAO,KAAK,CAAC;AACf,CAAC","sourcesContent":["import fs from \"fs\";\nimport path from \"path\";\nimport { createRequire } from \"module\";\nimport { pathToFileURL } from \"url\";\n\nexport function getPackageJson() {\n try {\n const pkgPath = path.join(process.cwd(), \"package.json\");\n if (fs.existsSync(pkgPath)) {\n return JSON.parse(fs.readFileSync(pkgPath, \"utf8\"));\n }\n } catch (err) {\n console.error(\"Error checking package.json:\", err);\n }\n}\n\nexport function isEsm() {\n const pkg = getPackageJson();\n return pkg?.type === \"module\";\n}\n\nexport async function importModule(\n modulePath: string,\n options: { fixExtension: boolean } = { fixExtension: true }\n) {\n if (!options.fixExtension || modulePath.endsWith(\".ts\") || !isEsm())\n return await import(modulePath);\n\n // When importing user modules: mainly on ESM environment\n const userRequire = createRequire(\n pathToFileURL(process.cwd() + \"/package.json\")\n );\n const resolved = userRequire.resolve(modulePath);\n return await import(pathToFileURL(resolved) as any);\n}\n\n/**\n * This one was written for escaping esModules when imported on cjs\n */\nexport async function importEsmPreventingTsTransformation(path: string) {\n const importFn = new Function(\"path\", \"return import(path)\");\n return await importFn(path);\n}\n\n/**\n * Helps getting the current package manager from user agent\n *\n * @returns {string} the package manager\n * @default \"npm\"\n */\nexport function detectPackageManagerFromUserAgent(): string {\n const userAgent = process.env.npm_config_user_agent || \"\";\n\n if (!userAgent) return \"npm\";\n if (userAgent.includes(\"cnpm\")) return \"cnpm\";\n if (userAgent.includes(\"pnpm\")) return \"pnpm\";\n if (userAgent.includes(\"yarn\")) return \"yarn\";\n if (userAgent.includes(\"npm\")) return \"npm\";\n if (userAgent.includes(\"bun\")) return \"bun\";\n if (userAgent.includes(\"corepack\")) return \"corepack\";\n if (userAgent.includes(\"deno\")) return \"deno\";\n\n return \"npm\";\n}\n"]}
|