arkos 1.2.32-test → 1.3.0-canary
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/README.md +2 -2
- package/dist/cjs/app.js +1 -1
- package/dist/cjs/app.js.map +1 -1
- package/dist/cjs/exports/auth/index.js +1 -6
- package/dist/cjs/exports/controllers/index.js +1 -11
- package/dist/cjs/exports/error-handler/index.js +1 -11
- package/dist/cjs/exports/index.js +1 -12
- package/dist/cjs/exports/middlewares/index.js +1 -7
- package/dist/cjs/exports/prisma/index.js +1 -6
- package/dist/cjs/exports/prisma/index.js.map +1 -1
- package/dist/cjs/exports/services/index.js +1 -49
- package/dist/cjs/exports/services/index.js.map +1 -1
- package/dist/cjs/exports/utils/index.js +1 -44
- package/dist/cjs/exports/validation/index.js +1 -11
- package/dist/cjs/modules/auth/auth.controller.js +1 -194
- package/dist/cjs/modules/auth/auth.controller.js.map +1 -1
- package/dist/cjs/modules/auth/auth.router.js +1 -50
- package/dist/cjs/modules/auth/auth.router.js.map +1 -1
- package/dist/cjs/modules/auth/auth.service.js +1 -185
- package/dist/cjs/modules/auth/auth.service.js.map +1 -1
- package/dist/cjs/modules/auth/utils/helpers/auth.controller.helpers.js +1 -83
- package/dist/cjs/modules/base/base.controller.js +1 -158
- package/dist/cjs/modules/base/base.controller.js.map +1 -1
- package/dist/cjs/modules/base/base.middlewares.js +1 -92
- package/dist/cjs/modules/base/base.middlewares.js.map +1 -1
- package/dist/cjs/modules/base/base.router.js +1 -24
- package/dist/cjs/modules/base/base.router.js.map +1 -1
- package/dist/cjs/modules/base/base.service.js +1 -128
- package/dist/cjs/modules/base/base.service.js.map +1 -1
- package/dist/cjs/modules/base/types/base.service.types.js +1 -0
- package/dist/cjs/modules/base/types/base.service.types.js.map +1 -0
- package/dist/cjs/modules/base/utils/helpers/base.controller.helpers.js +1 -82
- package/dist/cjs/modules/base/utils/helpers/base.controller.helpers.js.map +1 -1
- package/dist/cjs/modules/base/utils/helpers/base.middlewares.helpers.js +1 -50
- package/dist/cjs/modules/base/utils/helpers/base.router.helpers.js +1 -97
- package/dist/cjs/modules/base/utils/helpers/base.router.helpers.js.map +1 -1
- package/dist/cjs/modules/base/utils/helpers/base.service.helpers.js +1 -171
- package/dist/cjs/modules/base/utils/helpers/base.service.helpers.js.map +1 -1
- package/dist/cjs/modules/base/utils/service-hooks-manager.js +1 -0
- package/dist/cjs/modules/base/utils/service-hooks-manager.js.map +1 -0
- package/dist/cjs/modules/email/email.service.js +1 -104
- package/dist/cjs/modules/error-handler/error-handler.controller.js +4 -146
- package/dist/cjs/modules/error-handler/error-handler.controller.js.map +1 -1
- package/dist/cjs/modules/error-handler/utils/app-error.js +1 -17
- package/dist/cjs/modules/error-handler/utils/catch-async.js +1 -12
- package/dist/cjs/modules/error-handler/utils/error-handler.helpers.js +3 -201
- package/dist/cjs/modules/error-handler/utils/error-handler.helpers.js.map +1 -1
- package/dist/cjs/modules/file-upload/file-upload.controller.js +1 -271
- package/dist/cjs/modules/file-upload/file-upload.controller.js.map +1 -1
- package/dist/cjs/modules/file-upload/file-upload.router.js +1 -44
- package/dist/cjs/modules/file-upload/file-upload.router.js.map +1 -1
- package/dist/cjs/modules/file-upload/file-upload.service.js +1 -322
- package/dist/cjs/modules/file-upload/utils/helpers/file-upload.helpers.js +1 -97
- package/dist/cjs/modules/swagger/swagger.router.js +1 -99
- package/dist/cjs/modules/swagger/swagger.router.js.map +1 -1
- package/dist/cjs/modules/swagger/utils/helpers/get-authentication-json-schema-paths.js +1 -250
- package/dist/cjs/modules/swagger/utils/helpers/get-authentication-json-schema-paths.js.map +1 -1
- package/dist/cjs/modules/swagger/utils/helpers/get-swagger-default-configs.js +1 -0
- package/dist/cjs/modules/swagger/utils/helpers/get-swagger-default-configs.js.map +1 -0
- package/dist/cjs/modules/swagger/utils/helpers/get-system-json-schema-paths.js +1 -66
- package/dist/cjs/modules/swagger/utils/helpers/get-system-json-schema-paths.js.map +1 -1
- package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-class-validator-json-schemas.js +1 -41
- package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-class-validator-json-schemas.js.map +1 -1
- package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-prisma-json-schemas.js +1 -22
- package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-prisma-json-schemas.js.map +1 -1
- package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schemas.js +1 -0
- package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schemas.js.map +1 -0
- package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes-paths.js +1 -0
- package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes-paths.js.map +1 -0
- package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-parent-routes-paths.js +1 -0
- package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-parent-routes-paths.js.map +1 -0
- package/dist/cjs/modules/swagger/utils/helpers/missing-json-schemas-generator.js +1 -0
- package/dist/cjs/modules/swagger/utils/helpers/missing-json-schemas-generator.js.map +1 -0
- package/dist/cjs/modules/swagger/utils/helpers/swagger.router.helpers.js +1 -94
- package/dist/cjs/modules/swagger/utils/helpers/swagger.router.helpers.js.map +1 -1
- package/dist/cjs/package.json +3 -0
- package/dist/cjs/server.js +4 -2
- package/dist/cjs/server.js.map +1 -1
- package/dist/cjs/types/arkos-config.js +1 -3
- package/dist/cjs/types/arkos-config.js.map +1 -1
- package/dist/cjs/types/auth.js +1 -3
- package/dist/cjs/types/index.js +1 -11
- package/dist/cjs/types/index.js.map +1 -1
- package/dist/cjs/types/router-config.js +1 -3
- package/dist/cjs/utils/arkos-env.js +1 -9
- package/dist/cjs/utils/cli/build.js +5 -212
- package/dist/cjs/utils/cli/build.js.map +1 -1
- package/dist/cjs/utils/cli/dev.js +5 -256
- package/dist/cjs/utils/cli/dev.js.map +1 -1
- package/dist/cjs/utils/cli/generate.js +12 -189
- package/dist/cjs/utils/cli/generate.js.map +1 -1
- package/dist/cjs/utils/cli/index.js +1 -81
- package/dist/cjs/utils/cli/index.js.map +1 -1
- package/dist/cjs/utils/cli/start.js +1 -93
- package/dist/cjs/utils/cli/start.js.map +1 -1
- package/dist/cjs/utils/cli/utils/cli.helpers.js +1 -24
- package/dist/cjs/utils/cli/utils/template-generator/templates/generate-auth-configs-template.js +5 -20
- package/dist/cjs/utils/cli/utils/template-generator/templates/generate-controller-template.js +9 -18
- package/dist/cjs/utils/cli/utils/template-generator/templates/generate-controller-template.js.map +1 -1
- package/dist/cjs/utils/cli/utils/template-generator/templates/generate-middlewares.js +174 -101
- package/dist/cjs/utils/cli/utils/template-generator/templates/generate-middlewares.js.map +1 -1
- package/dist/cjs/utils/cli/utils/template-generator/templates/generate-prisma-query-options.js +9 -37
- package/dist/cjs/utils/cli/utils/template-generator/templates/generate-prisma-query-options.js.map +1 -1
- package/dist/cjs/utils/cli/utils/template-generator/templates/generate-router-template.js +11 -36
- package/dist/cjs/utils/cli/utils/template-generator/templates/generate-router-template.js.map +1 -1
- package/dist/cjs/utils/cli/utils/template-generator/templates/generate-service-template.js +7 -28
- package/dist/cjs/utils/cli/utils/template-generator/templates/generate-service-template.js.map +1 -1
- package/dist/cjs/utils/cli/utils/template-generators.js +2 -28
- package/dist/cjs/utils/cli/utils/template-generators.js.map +1 -1
- package/dist/cjs/utils/cli/utils/watermark-stamper.js +3 -0
- package/dist/cjs/utils/cli/utils/watermark-stamper.js.map +1 -0
- package/dist/cjs/utils/dotenv.helpers.js +1 -43
- package/dist/cjs/utils/dynamic-loader.js +11 -0
- package/dist/cjs/utils/dynamic-loader.js.map +1 -0
- package/dist/cjs/utils/features/api.features.js +1 -167
- package/dist/cjs/utils/features/api.features.js.map +1 -1
- package/dist/cjs/utils/features/change-case.features.js +1 -67
- package/dist/cjs/utils/features/port-and-host-allocator.js +1 -0
- package/dist/cjs/utils/features/port-and-host-allocator.js.map +1 -0
- package/dist/cjs/utils/helpers/api.features.helpers.js +1 -106
- package/dist/cjs/utils/helpers/api.features.helpers.js.map +1 -1
- package/dist/cjs/utils/helpers/change-case.helpers.js +1 -177
- package/dist/cjs/utils/helpers/deepmerge.helper.js +1 -115
- package/dist/cjs/utils/helpers/dynamic-loader.helpers.js +1 -0
- package/dist/cjs/utils/helpers/dynamic-loader.helpers.js.map +1 -0
- package/dist/cjs/utils/helpers/fs.helpers.js +1 -61
- package/dist/cjs/utils/helpers/fs.helpers.js.map +1 -1
- package/dist/cjs/utils/helpers/global.helpers.js +1 -89
- package/dist/cjs/utils/helpers/global.helpers.js.map +1 -1
- package/dist/cjs/utils/helpers/prisma.helpers.js +1 -52
- package/dist/cjs/utils/helpers/prisma.helpers.js.map +1 -1
- package/dist/cjs/utils/helpers/query-parser.helpers.js +1 -45
- package/dist/cjs/utils/helpers/routers.helpers.js +1 -21
- package/dist/cjs/utils/helpers/routers.helpers.js.map +1 -1
- package/dist/cjs/utils/helpers/text.helpers.js +1 -28
- package/dist/cjs/utils/prisma/prisma-json-schema-generator.js +1 -0
- package/dist/cjs/utils/prisma/prisma-json-schema-generator.js.map +1 -0
- package/dist/cjs/utils/prisma/prisma-schema-parser.js +3 -0
- package/dist/cjs/utils/prisma/prisma-schema-parser.js.map +1 -0
- package/dist/cjs/utils/prisma/types.js +1 -0
- package/dist/cjs/utils/prisma/types.js.map +1 -0
- package/dist/cjs/utils/sheu.js +1 -119
- package/dist/cjs/utils/sheu.js.map +1 -1
- package/dist/cjs/utils/validate-dto.js +1 -17
- package/dist/cjs/utils/validate-schema.js +1 -15
- package/dist/esm/app.js +1 -1
- package/dist/esm/app.js.map +1 -1
- package/dist/esm/exports/auth/index.js +1 -2
- package/dist/esm/exports/controllers/index.js +1 -4
- package/dist/esm/exports/error-handler/index.js +1 -4
- package/dist/esm/exports/index.js +1 -8
- package/dist/esm/exports/middlewares/index.js +1 -2
- package/dist/esm/exports/prisma/index.js +1 -3
- package/dist/esm/exports/prisma/index.js.map +1 -1
- package/dist/esm/exports/services/index.js +1 -9
- package/dist/esm/exports/services/index.js.map +1 -1
- package/dist/esm/exports/utils/index.js +1 -4
- package/dist/esm/exports/validation/index.js +1 -4
- package/dist/esm/modules/auth/auth.controller.js +1 -187
- package/dist/esm/modules/auth/auth.controller.js.map +1 -1
- package/dist/esm/modules/auth/auth.router.js +1 -44
- package/dist/esm/modules/auth/auth.router.js.map +1 -1
- package/dist/esm/modules/auth/auth.service.js +1 -178
- package/dist/esm/modules/auth/auth.service.js.map +1 -1
- package/dist/esm/modules/auth/utils/helpers/auth.controller.helpers.js +1 -73
- package/dist/esm/modules/base/base.controller.js +1 -150
- package/dist/esm/modules/base/base.controller.js.map +1 -1
- package/dist/esm/modules/base/base.middlewares.js +1 -81
- package/dist/esm/modules/base/base.middlewares.js.map +1 -1
- package/dist/esm/modules/base/base.router.js +1 -17
- package/dist/esm/modules/base/base.router.js.map +1 -1
- package/dist/esm/modules/base/base.service.js +1 -120
- package/dist/esm/modules/base/base.service.js.map +1 -1
- package/dist/esm/modules/base/types/base.service.types.js +1 -0
- package/dist/esm/modules/base/types/base.service.types.js.map +1 -0
- package/dist/esm/modules/base/utils/helpers/base.controller.helpers.js +1 -77
- package/dist/esm/modules/base/utils/helpers/base.controller.helpers.js.map +1 -1
- package/dist/esm/modules/base/utils/helpers/base.middlewares.helpers.js +1 -44
- package/dist/esm/modules/base/utils/helpers/base.router.helpers.js +1 -89
- package/dist/esm/modules/base/utils/helpers/base.router.helpers.js.map +1 -1
- package/dist/esm/modules/base/utils/helpers/base.service.helpers.js +1 -165
- package/dist/esm/modules/base/utils/helpers/base.service.helpers.js.map +1 -1
- package/dist/esm/modules/base/utils/service-hooks-manager.js +1 -0
- package/dist/esm/modules/base/utils/service-hooks-manager.js.map +1 -0
- package/dist/esm/modules/email/email.service.js +1 -97
- package/dist/esm/modules/error-handler/error-handler.controller.js +4 -107
- package/dist/esm/modules/error-handler/error-handler.controller.js.map +1 -1
- package/dist/esm/modules/error-handler/utils/app-error.js +1 -15
- package/dist/esm/modules/error-handler/utils/catch-async.js +1 -10
- package/dist/esm/modules/error-handler/utils/error-handler.helpers.js +3 -160
- package/dist/esm/modules/error-handler/utils/error-handler.helpers.js.map +1 -1
- package/dist/esm/modules/file-upload/file-upload.controller.js +1 -266
- package/dist/esm/modules/file-upload/file-upload.controller.js.map +1 -1
- package/dist/esm/modules/file-upload/file-upload.router.js +1 -38
- package/dist/esm/modules/file-upload/file-upload.router.js.map +1 -1
- package/dist/esm/modules/file-upload/file-upload.service.js +1 -314
- package/dist/esm/modules/file-upload/utils/helpers/file-upload.helpers.js +1 -87
- package/dist/esm/modules/swagger/swagger.router.js +1 -93
- package/dist/esm/modules/swagger/swagger.router.js.map +1 -1
- package/dist/esm/modules/swagger/utils/helpers/get-authentication-json-schema-paths.js +1 -247
- package/dist/esm/modules/swagger/utils/helpers/get-authentication-json-schema-paths.js.map +1 -1
- package/dist/esm/modules/swagger/utils/helpers/get-swagger-default-configs.js +1 -0
- package/dist/esm/modules/swagger/utils/helpers/get-swagger-default-configs.js.map +1 -0
- package/dist/esm/modules/swagger/utils/helpers/get-system-json-schema-paths.js +1 -63
- package/dist/esm/modules/swagger/utils/helpers/get-system-json-schema-paths.js.map +1 -1
- package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-class-validator-json-schemas.js +1 -38
- package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-class-validator-json-schemas.js.map +1 -1
- package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-prisma-json-schemas.js +1 -19
- package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-prisma-json-schemas.js.map +1 -1
- package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schemas.js +1 -0
- package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schemas.js.map +1 -0
- package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes-paths.js +1 -0
- package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes-paths.js.map +1 -0
- package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-parent-routes-paths.js +1 -0
- package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-parent-routes-paths.js.map +1 -0
- package/dist/esm/modules/swagger/utils/helpers/missing-json-schemas-generator.js +1 -0
- package/dist/esm/modules/swagger/utils/helpers/missing-json-schemas-generator.js.map +1 -0
- package/dist/esm/modules/swagger/utils/helpers/swagger.router.helpers.js +1 -84
- package/dist/esm/modules/swagger/utils/helpers/swagger.router.helpers.js.map +1 -1
- package/dist/esm/package.json +3 -0
- package/dist/esm/server.js +4 -2
- package/dist/esm/server.js.map +1 -1
- package/dist/esm/types/arkos-config.js +1 -2
- package/dist/esm/types/arkos-config.js.map +1 -1
- package/dist/esm/types/auth.js +1 -2
- package/dist/esm/types/index.js +1 -8
- package/dist/esm/types/index.js.map +1 -1
- package/dist/esm/types/router-config.js +1 -2
- package/dist/esm/utils/arkos-env.js +1 -7
- package/dist/esm/utils/cli/build.js +5 -206
- package/dist/esm/utils/cli/build.js.map +1 -1
- package/dist/esm/utils/cli/dev.js +5 -249
- package/dist/esm/utils/cli/dev.js.map +1 -1
- package/dist/esm/utils/cli/generate.js +12 -183
- package/dist/esm/utils/cli/generate.js.map +1 -1
- package/dist/esm/utils/cli/index.js +1 -74
- package/dist/esm/utils/cli/index.js.map +1 -1
- package/dist/esm/utils/cli/start.js +1 -86
- package/dist/esm/utils/cli/start.js.map +1 -1
- package/dist/esm/utils/cli/utils/cli.helpers.js +1 -16
- package/dist/esm/utils/cli/utils/template-generator/templates/generate-auth-configs-template.js +5 -17
- package/dist/esm/utils/cli/utils/template-generator/templates/generate-controller-template.js +9 -15
- package/dist/esm/utils/cli/utils/template-generator/templates/generate-controller-template.js.map +1 -1
- package/dist/esm/utils/cli/utils/template-generator/templates/generate-middlewares.js +174 -98
- package/dist/esm/utils/cli/utils/template-generator/templates/generate-middlewares.js.map +1 -1
- package/dist/esm/utils/cli/utils/template-generator/templates/generate-prisma-query-options.js +9 -34
- package/dist/esm/utils/cli/utils/template-generator/templates/generate-prisma-query-options.js.map +1 -1
- package/dist/esm/utils/cli/utils/template-generator/templates/generate-router-template.js +11 -30
- package/dist/esm/utils/cli/utils/template-generator/templates/generate-router-template.js.map +1 -1
- package/dist/esm/utils/cli/utils/template-generator/templates/generate-service-template.js +7 -25
- package/dist/esm/utils/cli/utils/template-generator/templates/generate-service-template.js.map +1 -1
- package/dist/esm/utils/cli/utils/template-generators.js +2 -25
- package/dist/esm/utils/cli/utils/template-generators.js.map +1 -1
- package/dist/esm/utils/cli/utils/watermark-stamper.js +3 -0
- package/dist/esm/utils/cli/utils/watermark-stamper.js.map +1 -0
- package/dist/esm/utils/dotenv.helpers.js +1 -37
- package/dist/esm/utils/dynamic-loader.js +11 -0
- package/dist/esm/utils/dynamic-loader.js.map +1 -0
- package/dist/esm/utils/features/api.features.js +1 -160
- package/dist/esm/utils/features/api.features.js.map +1 -1
- package/dist/esm/utils/features/change-case.features.js +1 -31
- package/dist/esm/utils/features/port-and-host-allocator.js +1 -0
- package/dist/esm/utils/features/port-and-host-allocator.js.map +1 -0
- package/dist/esm/utils/helpers/api.features.helpers.js +1 -103
- package/dist/esm/utils/helpers/api.features.helpers.js.map +1 -1
- package/dist/esm/utils/helpers/change-case.helpers.js +1 -161
- package/dist/esm/utils/helpers/deepmerge.helper.js +1 -113
- package/dist/esm/utils/helpers/dynamic-loader.helpers.js +1 -0
- package/dist/esm/utils/helpers/dynamic-loader.helpers.js.map +1 -0
- package/dist/esm/utils/helpers/fs.helpers.js +1 -52
- package/dist/esm/utils/helpers/fs.helpers.js.map +1 -1
- package/dist/esm/utils/helpers/global.helpers.js +1 -47
- package/dist/esm/utils/helpers/global.helpers.js.map +1 -1
- package/dist/esm/utils/helpers/prisma.helpers.js +1 -44
- package/dist/esm/utils/helpers/prisma.helpers.js.map +1 -1
- package/dist/esm/utils/helpers/query-parser.helpers.js +1 -40
- package/dist/esm/utils/helpers/routers.helpers.js +1 -16
- package/dist/esm/utils/helpers/routers.helpers.js.map +1 -1
- package/dist/esm/utils/helpers/text.helpers.js +1 -22
- package/dist/esm/utils/prisma/prisma-json-schema-generator.js +1 -0
- package/dist/esm/utils/prisma/prisma-json-schema-generator.js.map +1 -0
- package/dist/esm/utils/prisma/prisma-schema-parser.js +3 -0
- package/dist/esm/utils/prisma/prisma-schema-parser.js.map +1 -0
- package/dist/esm/utils/prisma/types.js +1 -0
- package/dist/esm/utils/prisma/types.js.map +1 -0
- package/dist/esm/utils/sheu.js +1 -117
- package/dist/esm/utils/sheu.js.map +1 -1
- package/dist/esm/utils/validate-dto.js +1 -11
- package/dist/esm/utils/validate-schema.js +1 -9
- package/dist/types/exports/prisma/index.d.ts +1 -1
- package/dist/types/exports/services/index.d.ts +3 -2
- package/dist/types/modules/auth/auth.controller.d.ts +1 -1
- package/dist/types/modules/auth/auth.service.d.ts +1 -0
- package/dist/types/modules/base/base.controller.d.ts +1 -2
- package/dist/types/modules/base/base.middlewares.d.ts +4 -4
- package/dist/types/modules/base/base.service.d.ts +13 -67
- package/dist/types/modules/base/types/base.service.types.d.ts +183 -0
- package/dist/types/modules/base/utils/helpers/base.controller.helpers.d.ts +0 -2
- package/dist/types/modules/base/utils/helpers/base.router.helpers.d.ts +1 -1
- package/dist/types/modules/base/utils/helpers/base.service.helpers.d.ts +2 -1
- package/dist/types/modules/base/utils/service-hooks-manager.d.ts +7 -0
- package/dist/types/modules/error-handler/error-handler.controller.d.ts +1 -1
- package/dist/types/modules/error-handler/utils/error-handler.helpers.d.ts +1 -0
- package/dist/types/modules/file-upload/file-upload.controller.d.ts +1 -1
- package/dist/types/modules/swagger/utils/helpers/get-authentication-json-schema-paths.d.ts +3 -1
- package/dist/types/modules/swagger/utils/helpers/get-swagger-default-configs.d.ts +46 -0
- package/dist/types/modules/swagger/utils/helpers/json-schema-generators/generate-prisma-json-schemas.d.ts +2 -1
- package/dist/types/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schemas.d.ts +1 -0
- package/dist/types/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes-paths.d.ts +3 -0
- package/dist/types/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-parent-routes-paths.d.ts +3 -0
- package/dist/types/modules/swagger/utils/helpers/missing-json-schemas-generator.d.ts +34 -0
- package/dist/types/modules/swagger/utils/helpers/swagger.router.helpers.d.ts +2 -2
- package/dist/types/types/arkos-config.d.ts +5 -3
- package/dist/types/types/index.d.ts +1 -0
- package/dist/types/utils/cli/generate.d.ts +1 -1
- package/dist/types/utils/cli/utils/watermark-stamper.d.ts +9 -0
- package/dist/types/utils/{helpers/models.helpers.d.ts → dynamic-loader.d.ts} +33 -20
- package/dist/types/utils/features/port-and-host-allocator.d.ts +21 -0
- package/dist/types/utils/helpers/dynamic-loader.helpers.d.ts +2 -0
- package/dist/types/utils/helpers/fs.helpers.d.ts +0 -4
- package/dist/types/utils/helpers/global.helpers.d.ts +1 -0
- package/dist/types/utils/helpers/prisma.helpers.d.ts +0 -1
- package/dist/types/utils/prisma/prisma-json-schema-generator.d.ts +34 -0
- package/dist/types/utils/prisma/prisma-schema-parser.d.ts +18 -0
- package/dist/types/utils/prisma/types.d.ts +48 -0
- package/package.json +24 -17
- package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schema.js +0 -30
- package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schema.js.map +0 -1
- package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes.js +0 -442
- package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes.js.map +0 -1
- package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-parent-routes.js +0 -165
- package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-parent-routes.js.map +0 -1
- package/dist/cjs/utils/helpers/models.helpers.js +0 -314
- package/dist/cjs/utils/helpers/models.helpers.js.map +0 -1
- package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schema.js +0 -24
- package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schema.js.map +0 -1
- package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes.js +0 -436
- package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes.js.map +0 -1
- package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-parent-routes.js +0 -159
- package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-parent-routes.js.map +0 -1
- package/dist/esm/utils/helpers/models.helpers.js +0 -297
- package/dist/esm/utils/helpers/models.helpers.js.map +0 -1
- package/dist/types/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schema.d.ts +0 -1
- package/dist/types/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes.d.ts +0 -2
- package/dist/types/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-parent-routes.d.ts +0 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.features.helpers.js","sourceRoot":"","sources":["../../../../src/utils/helpers/api.features.helpers.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Configuration types for field type mapping\n */\ninterface FieldConfig {\n dateFields: string[];\n booleanFields: string[];\n numericFields: string[];\n}\n\n/**\n * Type for the structured filter object returned by the parser\n */\ntype ParsedFilter = {\n [key: string]: any;\n orderBy?: Record<string, \"asc\" | \"desc\">;\n OR?: Record<string, any>[];\n};\n\n/**\n * Default configuration for field types\n */\nconst DEFAULT_FIELD_CONFIG: FieldConfig = {\n dateFields: [\"createdAt\", \"updatedAt\", \"deletedAt\", \"date\"],\n booleanFields: [\"isActive\", \"isDeleted\", \"isPublished\", \"isArchived\"],\n numericFields: [\"age\", \"price\", \"quantity\", \"amount\", \"rating\"],\n};\n\n/**\n * Parses query parameters into a structured filter object compatible with Prisma queries.\n * Supports various operators and data type conversions.\n *\n * @param query - Object containing query parameters\n * @param fieldConfig - Optional configuration for field type mapping\n * @returns Structured filter object for database queries\n *\n * @example\n * // Basic usage\n * parseQueryParamsWithModifiers({ name__contains: 'john' })\n * // => { name: { contains: 'john', mode: 'sensitive' } }\n *\n * @example\n * // Complex query\n * parseQueryParamsWithModifiers({\n * name__not__equals: 'john',\n * age__gt: '25',\n * tags__in: 'tag1,tag2',\n * orderBy__createdAt: 'desc'\n * })\n */\nexport function parseQueryParamsWithModifiers(\n query: Record<string, any>,\n // excludedFields: string[],\n fieldConfig: FieldConfig = DEFAULT_FIELD_CONFIG\n): ParsedFilter {\n return Object.entries(JSON.parse(JSON.stringify(query))).reduce(\n (acc, [key, value]) => {\n const parts = key.split(\"__\");\n if (!value && value !== false && value !== \"false\" && parts.length < 2)\n return acc;\n\n // Convert value to string if it's not already\n const stringValue = Array.isArray(value) ? value[0]?.toString() : value;\n\n if (parts.length < 2) {\n acc[key] =\n typeof value === \"string\" && !Number.isNaN(value)\n ? convertValue(stringValue, parts[0], fieldConfig)\n : value;\n return acc;\n }\n const fieldName = parts[0];\n\n // Handle ordering\n if (fieldName === \"orderBy\" && parts.length === 2) {\n if (!acc.orderBy) acc.orderBy = {};\n acc.orderBy[parts[1]] = stringValue as \"asc\" | \"desc\";\n return acc;\n }\n\n // Handle simple equals case\n if (parts.length === 1) {\n acc[fieldName] = {\n equals: convertValue(stringValue, fieldName, fieldConfig),\n };\n return acc;\n }\n\n let currentLevel = acc;\n let currentKey = fieldName;\n\n // Build nested structure\n for (let i = 1; i < parts.length - 1; i++) {\n if (!currentLevel[currentKey]) {\n currentLevel[currentKey] = {};\n }\n currentLevel = currentLevel[currentKey];\n currentKey = parts[i];\n }\n\n const lastOperator = parts[parts.length - 1];\n\n // Handle special operators\n switch (lastOperator) {\n case \"icontains\":\n currentLevel[currentKey] = {\n contains: stringValue,\n mode: \"insensitive\",\n };\n break;\n\n case \"contains\":\n currentLevel[currentKey] = {\n contains: stringValue,\n mode: \"sensitive\",\n };\n break;\n\n case \"in\":\n case \"notIn\":\n currentLevel[currentKey] = {\n [lastOperator]: stringValue\n .split(\",\")\n .map((v: string) =>\n convertValue(v.trim(), fieldName, fieldConfig)\n ),\n };\n break;\n\n case \"or\":\n const values: string[] = stringValue.split(\",\");\n if (!acc.OR) acc.OR = [];\n acc.OR.push(\n ...values.map((val) => ({\n [fieldName]: {\n equals: convertValue(val.trim(), fieldName, fieldConfig),\n },\n }))\n );\n break;\n\n case \"isNull\":\n currentLevel[currentKey] = {\n equals: stringValue.toLowerCase() === \"true\" ? null : undefined,\n };\n break;\n\n case \"isEmpty\":\n currentLevel[currentKey] = {\n equals: stringValue.toLowerCase() === \"true\" ? \"\" : undefined,\n };\n break;\n\n default:\n currentLevel[currentKey] = {\n [lastOperator]: convertValue(stringValue, fieldName, fieldConfig),\n };\n }\n\n return acc;\n },\n {} as ParsedFilter\n );\n}\n\n/**\n * Converts string values to appropriate types based on field configuration\n * \n * // Example usage:\n/*\n const query = {\n name__not__equals: 'uanela',\n email__contains: 'example.com',\n description__icontains: 'test',\n age__gt: '25',\n status: 'active',\n tags__in: 'tag1,tag2,tag3',\n createdAt__gt: '2024-01-01',\n isActive: 'true',\n orderBy__createdAt: 'desc'\n };\n \n const result = parseQueryParamsWithModifiers(query);\n */\nfunction convertValue(\n value: string,\n fieldName: string,\n config: FieldConfig\n): any {\n // Handle date fields\n if (config.dateFields?.includes?.(fieldName) && value) {\n return new Date(value);\n }\n\n // Handle boolean fields\n if (config.booleanFields?.includes?.(fieldName) && value) {\n return value.toLowerCase() === \"true\";\n }\n\n // Handle numeric fields\n if (config.numericFields?.includes?.(fieldName) && value) {\n return Number(value);\n }\n\n return value;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"api.features.helpers.js","sourceRoot":"","sources":["../../../../src/utils/helpers/api.features.helpers.ts"],"names":[],"mappings":"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","sourcesContent":["import deepmerge from \"./deepmerge.helper\";\n\n/**\n * Configuration types for field type mapping\n */\ninterface FieldConfig {\n dateFields: string[];\n booleanFields: string[];\n numericFields: string[];\n}\n\n/**\n * Type for the structured filter object returned by the parser\n */\ntype ParsedFilter = {\n [key: string]: any;\n orderBy?: Record<string, \"asc\" | \"desc\">;\n OR?: Record<string, any>[];\n};\n\n/**\n * Default configuration for field types\n */\nconst DEFAULT_FIELD_CONFIG: FieldConfig = {\n dateFields: [\"createdAt\", \"updatedAt\", \"deletedAt\", \"date\"],\n booleanFields: [\"isActive\", \"isDeleted\", \"isPublished\", \"isArchived\"],\n numericFields: [\"age\", \"price\", \"quantity\", \"amount\", \"rating\"],\n};\n\n/**\n * Parses query parameters into a structured filter object compatible with Prisma queries.\n * Supports various operators and data type conversions with deep merge strategy.\n *\n * @param query - Object containing query parameters\n * @param fieldConfig - Optional configuration for field type mapping\n * @returns Structured filter object for database queries\n *\n * @example\n * // Basic usage\n * parseQueryParamsWithModifiers({ name__contains: 'john' })\n * // => { name: { contains: 'john', mode: 'sensitive' } }\n *\n * @example\n * // Deep merge example\n * parseQueryParamsWithModifiers({\n * 'some__data': '1',\n * 'some__info': '2'\n * })\n * // => { some: { data: '1', info: '2' } }\n *\n * @example\n * // Complex query\n * parseQueryParamsWithModifiers({\n * name__not__equals: 'john',\n * age__gt: '25',\n * tags__in: 'tag1,tag2',\n * orderBy__createdAt: 'desc'\n * })\n */\nexport function parseQueryParamsWithModifiers(\n query: Record<string, any>,\n fieldConfig: FieldConfig = DEFAULT_FIELD_CONFIG\n): ParsedFilter {\n const entries = Object.entries(JSON.parse(JSON.stringify(query)));\n let result: ParsedFilter = {};\n\n for (const [key, value] of entries) {\n const parts = key.split(\"__\");\n if (!value && value !== false && value !== \"false\" && parts.length < 2)\n continue;\n\n // Convert value to string if it's not already\n const stringValue = Array.isArray(value) ? value[0]?.toString() : value;\n\n let currentResult: any = {};\n\n if (parts.length < 2) {\n currentResult[key] =\n typeof value === \"string\" && !Number.isNaN(value)\n ? convertValue(stringValue, parts[0], fieldConfig)\n : value;\n } else {\n const fieldName = parts[0];\n\n // Handle ordering\n if (fieldName === \"orderBy\" && parts.length === 2) {\n currentResult.orderBy = {};\n currentResult.orderBy[parts[1]] = stringValue as \"asc\" | \"desc\";\n } else if (parts.length === 1) {\n // Handle simple equals case\n currentResult[fieldName] = {\n equals: convertValue(stringValue, fieldName, fieldConfig),\n };\n } else {\n // Build nested structure\n let nestedObj: any = {};\n let currentLevel = nestedObj;\n let currentKey = fieldName;\n\n // Create the nested path\n for (let i = 1; i < parts.length - 1; i++) {\n currentLevel[currentKey] = {};\n currentLevel = currentLevel[currentKey];\n currentKey = parts[i];\n }\n\n const lastOperator = parts[parts.length - 1];\n\n // Handle special operators\n switch (lastOperator) {\n case \"icontains\":\n currentLevel[currentKey] = {\n contains: stringValue,\n mode: \"insensitive\",\n };\n break;\n\n case \"contains\":\n currentLevel[currentKey] = {\n contains: stringValue,\n mode: \"sensitive\",\n };\n break;\n\n case \"in\":\n case \"notIn\":\n currentLevel[currentKey] = {\n [lastOperator]: stringValue\n .split(\",\")\n .map((v: string) =>\n convertValue(v.trim(), fieldName, fieldConfig)\n ),\n };\n break;\n\n case \"or\":\n const values: string[] = stringValue.split(\",\");\n nestedObj.OR = values.map((val) => ({\n [fieldName]: {\n equals: convertValue(val.trim(), fieldName, fieldConfig),\n },\n }));\n break;\n\n case \"isNull\":\n currentLevel[currentKey] = {\n equals: stringValue.toLowerCase() === \"true\" ? null : undefined,\n };\n break;\n\n case \"isEmpty\":\n currentLevel[currentKey] = {\n equals: stringValue.toLowerCase() === \"true\" ? \"\" : undefined,\n };\n break;\n\n default:\n currentLevel[currentKey] = {\n [lastOperator]: convertValue(stringValue, fieldName, fieldConfig),\n };\n }\n\n currentResult = nestedObj;\n }\n }\n\n // Deep merge the current result with the accumulated result\n result = deepmerge(result, currentResult);\n }\n\n return result;\n}\n\n/**\n * Converts string values to appropriate types based on field configuration\n *\n * @example\n * // Example usage:\n * const query = {\n * name__not__equals: 'uanela',\n * email__contains: 'example.com',\n * description__icontains: 'test',\n * age__gt: '25',\n * status: 'active',\n * tags__in: 'tag1,tag2,tag3',\n * createdAt__gt: '2024-01-01',\n * isActive: 'true',\n * orderBy__createdAt: 'desc',\n * some__data: '1',\n * some__info: '2'\n * };\n *\n * const result = parseQueryParamsWithModifiers(query);\n * // Result will properly merge nested objects instead of overwriting\n */\nfunction convertValue(\n value: string,\n fieldName: string,\n config: FieldConfig\n): any {\n // Handle date fields\n if (config.dateFields?.includes?.(fieldName) && value) {\n return new Date(value);\n }\n\n // Handle boolean fields\n if (config.booleanFields?.includes?.(fieldName) && value) {\n return value.toLowerCase() === \"true\";\n }\n\n // Handle numeric fields\n if (config.numericFields?.includes?.(fieldName) && value) {\n return Number(value);\n }\n\n return value;\n}\n"]}
|
|
@@ -1,161 +1 @@
|
|
|
1
|
-
const
|
|
2
|
-
const SPLIT_UPPER_UPPER_RE = /(\p{Lu})([\p{Lu}][\p{Ll}])/gu;
|
|
3
|
-
const SPLIT_SEPARATE_NUMBER_RE = /(\d)\p{Ll}|(\p{L})\d/u;
|
|
4
|
-
const DEFAULT_STRIP_REGEXP = /[^\p{L}\d]+/giu;
|
|
5
|
-
const SPLIT_REPLACE_VALUE = "$1\0$2";
|
|
6
|
-
const DEFAULT_PREFIX_SUFFIX_CHARACTERS = "";
|
|
7
|
-
export function split(value) {
|
|
8
|
-
let result = value.trim();
|
|
9
|
-
result = result
|
|
10
|
-
.replace(SPLIT_LOWER_UPPER_RE, SPLIT_REPLACE_VALUE)
|
|
11
|
-
.replace(SPLIT_UPPER_UPPER_RE, SPLIT_REPLACE_VALUE);
|
|
12
|
-
result = result.replace(DEFAULT_STRIP_REGEXP, "\0");
|
|
13
|
-
let start = 0;
|
|
14
|
-
let end = result.length;
|
|
15
|
-
while (result.charAt(start) === "\0")
|
|
16
|
-
start++;
|
|
17
|
-
if (start === end)
|
|
18
|
-
return [];
|
|
19
|
-
while (result.charAt(end - 1) === "\0")
|
|
20
|
-
end--;
|
|
21
|
-
return result.slice(start, end).split(/\0/g);
|
|
22
|
-
}
|
|
23
|
-
export function splitSeparateNumbers(value) {
|
|
24
|
-
const words = split(value);
|
|
25
|
-
for (let i = 0; i < words.length; i++) {
|
|
26
|
-
const word = words[i];
|
|
27
|
-
const match = SPLIT_SEPARATE_NUMBER_RE.exec(word);
|
|
28
|
-
if (match) {
|
|
29
|
-
const offset = match.index + (match[1] ?? match[2]).length;
|
|
30
|
-
words.splice(i, 1, word.slice(0, offset), word.slice(offset));
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
return words;
|
|
34
|
-
}
|
|
35
|
-
export function noCase(input, options) {
|
|
36
|
-
const [prefix, words, suffix] = splitPrefixSuffix(input, options);
|
|
37
|
-
return (prefix +
|
|
38
|
-
words.map(lowerFactory(options?.locale)).join(options?.delimiter ?? " ") +
|
|
39
|
-
suffix);
|
|
40
|
-
}
|
|
41
|
-
export function camelCase(input, options) {
|
|
42
|
-
const [prefix, words, suffix] = splitPrefixSuffix(input, options);
|
|
43
|
-
const lower = lowerFactory(options?.locale);
|
|
44
|
-
const upper = upperFactory(options?.locale);
|
|
45
|
-
const transform = options?.mergeAmbiguousCharacters
|
|
46
|
-
? capitalCaseTransformFactory(lower, upper)
|
|
47
|
-
: pascalCaseTransformFactory(lower, upper);
|
|
48
|
-
return (prefix +
|
|
49
|
-
words
|
|
50
|
-
.map((word, index) => {
|
|
51
|
-
if (index === 0)
|
|
52
|
-
return lower(word);
|
|
53
|
-
return transform(word, index);
|
|
54
|
-
})
|
|
55
|
-
.join(options?.delimiter ?? "") +
|
|
56
|
-
suffix);
|
|
57
|
-
}
|
|
58
|
-
export function pascalCase(input, options) {
|
|
59
|
-
const [prefix, words, suffix] = splitPrefixSuffix(input, options);
|
|
60
|
-
const lower = lowerFactory(options?.locale);
|
|
61
|
-
const upper = upperFactory(options?.locale);
|
|
62
|
-
const transform = options?.mergeAmbiguousCharacters
|
|
63
|
-
? capitalCaseTransformFactory(lower, upper)
|
|
64
|
-
: pascalCaseTransformFactory(lower, upper);
|
|
65
|
-
return prefix + words.map(transform).join(options?.delimiter ?? "") + suffix;
|
|
66
|
-
}
|
|
67
|
-
export function pascalSnakeCase(input, options) {
|
|
68
|
-
return capitalCase(input, { delimiter: "_", ...options });
|
|
69
|
-
}
|
|
70
|
-
export function capitalCase(input, options) {
|
|
71
|
-
const [prefix, words, suffix] = splitPrefixSuffix(input, options);
|
|
72
|
-
const lower = lowerFactory(options?.locale);
|
|
73
|
-
const upper = upperFactory(options?.locale);
|
|
74
|
-
return (prefix +
|
|
75
|
-
words
|
|
76
|
-
.map(capitalCaseTransformFactory(lower, upper))
|
|
77
|
-
.join(options?.delimiter ?? " ") +
|
|
78
|
-
suffix);
|
|
79
|
-
}
|
|
80
|
-
export function constantCase(input, options) {
|
|
81
|
-
const [prefix, words, suffix] = splitPrefixSuffix(input, options);
|
|
82
|
-
return (prefix +
|
|
83
|
-
words.map(upperFactory(options?.locale)).join(options?.delimiter ?? "_") +
|
|
84
|
-
suffix);
|
|
85
|
-
}
|
|
86
|
-
export function dotCase(input, options) {
|
|
87
|
-
return noCase(input, { delimiter: ".", ...options });
|
|
88
|
-
}
|
|
89
|
-
export function kebabCase(input, options) {
|
|
90
|
-
return noCase(input, { delimiter: "-", ...options });
|
|
91
|
-
}
|
|
92
|
-
export function pathCase(input, options) {
|
|
93
|
-
return noCase(input, { delimiter: "/", ...options });
|
|
94
|
-
}
|
|
95
|
-
export function sentenceCase(input, options) {
|
|
96
|
-
const [prefix, words, suffix] = splitPrefixSuffix(input, options);
|
|
97
|
-
const lower = lowerFactory(options?.locale);
|
|
98
|
-
const upper = upperFactory(options?.locale);
|
|
99
|
-
const transform = capitalCaseTransformFactory(lower, upper);
|
|
100
|
-
return (prefix +
|
|
101
|
-
words
|
|
102
|
-
.map((word, index) => {
|
|
103
|
-
if (index === 0)
|
|
104
|
-
return transform(word);
|
|
105
|
-
return lower(word);
|
|
106
|
-
})
|
|
107
|
-
.join(options?.delimiter ?? " ") +
|
|
108
|
-
suffix);
|
|
109
|
-
}
|
|
110
|
-
export function snakeCase(input, options) {
|
|
111
|
-
return noCase(input, { delimiter: "_", ...options });
|
|
112
|
-
}
|
|
113
|
-
export function trainCase(input, options) {
|
|
114
|
-
return capitalCase(input, { delimiter: "-", ...options });
|
|
115
|
-
}
|
|
116
|
-
function lowerFactory(locale) {
|
|
117
|
-
return locale === false
|
|
118
|
-
? (input) => input.toLowerCase()
|
|
119
|
-
: (input) => input.toLocaleLowerCase(locale);
|
|
120
|
-
}
|
|
121
|
-
function upperFactory(locale) {
|
|
122
|
-
return locale === false
|
|
123
|
-
? (input) => input.toUpperCase()
|
|
124
|
-
: (input) => input.toLocaleUpperCase(locale);
|
|
125
|
-
}
|
|
126
|
-
function capitalCaseTransformFactory(lower, upper) {
|
|
127
|
-
return (word) => `${upper(word[0])}${lower(word.slice(1))}`;
|
|
128
|
-
}
|
|
129
|
-
function pascalCaseTransformFactory(lower, upper) {
|
|
130
|
-
return (word, index) => {
|
|
131
|
-
const char0 = word[0];
|
|
132
|
-
const initial = index > 0 && char0 >= "0" && char0 <= "9" ? "_" + char0 : upper(char0);
|
|
133
|
-
return initial + lower(word.slice(1));
|
|
134
|
-
};
|
|
135
|
-
}
|
|
136
|
-
function splitPrefixSuffix(input, options = {}) {
|
|
137
|
-
const splitFn = options.split ?? (options.separateNumbers ? splitSeparateNumbers : split);
|
|
138
|
-
const prefixCharacters = options.prefixCharacters ?? DEFAULT_PREFIX_SUFFIX_CHARACTERS;
|
|
139
|
-
const suffixCharacters = options.suffixCharacters ?? DEFAULT_PREFIX_SUFFIX_CHARACTERS;
|
|
140
|
-
let prefixIndex = 0;
|
|
141
|
-
let suffixIndex = input.length;
|
|
142
|
-
while (prefixIndex < input.length) {
|
|
143
|
-
const char = input.charAt(prefixIndex);
|
|
144
|
-
if (!prefixCharacters?.includes?.(char))
|
|
145
|
-
break;
|
|
146
|
-
prefixIndex++;
|
|
147
|
-
}
|
|
148
|
-
while (suffixIndex > prefixIndex) {
|
|
149
|
-
const index = suffixIndex - 1;
|
|
150
|
-
const char = input.charAt(index);
|
|
151
|
-
if (!suffixCharacters?.includes?.(char))
|
|
152
|
-
break;
|
|
153
|
-
suffixIndex = index;
|
|
154
|
-
}
|
|
155
|
-
return [
|
|
156
|
-
input.slice(0, prefixIndex),
|
|
157
|
-
splitFn(input.slice(prefixIndex, suffixIndex)),
|
|
158
|
-
input.slice(suffixIndex),
|
|
159
|
-
];
|
|
160
|
-
}
|
|
161
|
-
//# sourceMappingURL=change-case.helpers.js.map
|
|
1
|
+
"use strict";const d=/([\p{Ll}\d])(\p{Lu})/gu,_=/(\p{Lu})([\p{Lu}][\p{Ll}])/gu,E=/(\d)\p{Ll}|(\p{L})\d/u,h=/[^\p{L}\d]+/giu,m="$1\0$2",L="";export function split(r){let e=r.trim();e=e.replace(d,m).replace(_,m),e=e.replace(h,"\0");let t=0,c=e.length;for(;e.charAt(t)==="\0";)t++;if(t===c)return[];for(;e.charAt(c-1)==="\0";)c--;return e.slice(t,c).split(/\0/g)}export function splitSeparateNumbers(r){const e=split(r);for(let t=0;t<e.length;t++){const c=e[t],n=E.exec(c);if(n){const a=n.index+(n[1]??n[2]).length;e.splice(t,1,c.slice(0,a),c.slice(a))}}return e}export function noCase(r,e){const[t,c,n]=o(r,e);return t+c.map(u(e?.locale)).join(e?.delimiter??" ")+n}export function camelCase(r,e){const[t,c,n]=o(r,e),a=u(e?.locale),s=f(e?.locale),i=e?.mergeAmbiguousCharacters?x(a,s):C(a,s);return t+c.map((l,p)=>p===0?a(l):i(l,p)).join(e?.delimiter??"")+n}export function pascalCase(r,e){const[t,c,n]=o(r,e),a=u(e?.locale),s=f(e?.locale),i=e?.mergeAmbiguousCharacters?x(a,s):C(a,s);return t+c.map(i).join(e?.delimiter??"")+n}export function pascalSnakeCase(r,e){return capitalCase(r,{delimiter:"_",...e})}export function capitalCase(r,e){const[t,c,n]=o(r,e),a=u(e?.locale),s=f(e?.locale);return t+c.map(x(a,s)).join(e?.delimiter??" ")+n}export function constantCase(r,e){const[t,c,n]=o(r,e);return t+c.map(f(e?.locale)).join(e?.delimiter??"_")+n}export function dotCase(r,e){return noCase(r,{delimiter:".",...e})}export function kebabCase(r,e){return noCase(r,{delimiter:"-",...e})}export function pathCase(r,e){return noCase(r,{delimiter:"/",...e})}export function sentenceCase(r,e){const[t,c,n]=o(r,e),a=u(e?.locale),s=f(e?.locale),i=x(a,s);return t+c.map((l,p)=>p===0?i(l):a(l)).join(e?.delimiter??" ")+n}export function snakeCase(r,e){return noCase(r,{delimiter:"_",...e})}export function trainCase(r,e){return capitalCase(r,{delimiter:"-",...e})}function u(r){return r===!1?e=>e.toLowerCase():e=>e.toLocaleLowerCase(r)}function f(r){return r===!1?e=>e.toUpperCase():e=>e.toLocaleUpperCase(r)}function x(r,e){return t=>`${e(t[0])}${r(t.slice(1))}`}function C(r,e){return(t,c)=>{const n=t[0];return(c>0&&n>="0"&&n<="9"?"_"+n:e(n))+r(t.slice(1))}}function o(r,e={}){const t=e.split??(e.separateNumbers?splitSeparateNumbers:split),c=e.prefixCharacters??"",n=e.suffixCharacters??"";let a=0,s=r.length;for(;a<r.length;){const i=r.charAt(a);if(!c?.includes?.(i))break;a++}for(;s>a;){const i=s-1,l=r.charAt(i);if(!n?.includes?.(l))break;s=i}return[r.slice(0,a),t(r.slice(a,s)),r.slice(s)]}
|
|
@@ -1,113 +1 @@
|
|
|
1
|
-
function isMergeableObject(
|
|
2
|
-
return isNonNullObject(value) && !isSpecial(value);
|
|
3
|
-
}
|
|
4
|
-
function isNonNullObject(value) {
|
|
5
|
-
return !!value && typeof value === "object";
|
|
6
|
-
}
|
|
7
|
-
function isSpecial(value) {
|
|
8
|
-
const stringValue = Object.prototype.toString.call(value);
|
|
9
|
-
return stringValue === "[object RegExp]" || stringValue === "[object Date]";
|
|
10
|
-
}
|
|
11
|
-
function emptyTarget(val) {
|
|
12
|
-
return Array.isArray(val) ? [] : {};
|
|
13
|
-
}
|
|
14
|
-
function getKeys(target) {
|
|
15
|
-
const objectKeys = Object.keys(target);
|
|
16
|
-
const symbolKeys = getEnumerableOwnPropertySymbols(target);
|
|
17
|
-
return [...objectKeys, ...symbolKeys];
|
|
18
|
-
}
|
|
19
|
-
function getEnumerableOwnPropertySymbols(target) {
|
|
20
|
-
return Object.getOwnPropertySymbols
|
|
21
|
-
? Object.getOwnPropertySymbols(target).filter(function (symbol) {
|
|
22
|
-
return Object.propertyIsEnumerable.call(target, symbol);
|
|
23
|
-
})
|
|
24
|
-
: [];
|
|
25
|
-
}
|
|
26
|
-
function cloneUnlessOtherwiseSpecified(value, options) {
|
|
27
|
-
return options.clone !== false && options.isMergeableObject?.(value)
|
|
28
|
-
? deepmerge(emptyTarget(value), value, options)
|
|
29
|
-
: value;
|
|
30
|
-
}
|
|
31
|
-
function defaultArrayMerge(target, source, options) {
|
|
32
|
-
return target.concat(source).map(function (element) {
|
|
33
|
-
return options.cloneUnlessOtherwiseSpecified(element, options);
|
|
34
|
-
});
|
|
35
|
-
}
|
|
36
|
-
function getMergeFunction(key, options) {
|
|
37
|
-
if (!options.customMerge) {
|
|
38
|
-
return deepmerge;
|
|
39
|
-
}
|
|
40
|
-
const customMerge = options.customMerge(key);
|
|
41
|
-
return typeof customMerge === "function" ? customMerge : deepmerge;
|
|
42
|
-
}
|
|
43
|
-
function propertyIsOnObject(object, property) {
|
|
44
|
-
try {
|
|
45
|
-
return property in object;
|
|
46
|
-
}
|
|
47
|
-
catch (_) {
|
|
48
|
-
return false;
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
function propertyIsUnsafe(target, key) {
|
|
52
|
-
return (propertyIsOnObject(target, key) &&
|
|
53
|
-
!(Object.hasOwnProperty.call(target, key) &&
|
|
54
|
-
Object.propertyIsEnumerable.call(target, key)));
|
|
55
|
-
}
|
|
56
|
-
function mergeObject(target, source, options) {
|
|
57
|
-
const destination = {};
|
|
58
|
-
if (options.isMergeableObject?.(target)) {
|
|
59
|
-
getKeys(target).forEach(function (key) {
|
|
60
|
-
destination[key] = options.cloneUnlessOtherwiseSpecified
|
|
61
|
-
? options.cloneUnlessOtherwiseSpecified(target[key], options)
|
|
62
|
-
: target[key];
|
|
63
|
-
});
|
|
64
|
-
}
|
|
65
|
-
getKeys(source).forEach(function (key) {
|
|
66
|
-
if (propertyIsUnsafe(target, key)) {
|
|
67
|
-
return;
|
|
68
|
-
}
|
|
69
|
-
if (propertyIsOnObject(target, key) &&
|
|
70
|
-
options.isMergeableObject?.(source[key])) {
|
|
71
|
-
destination[key] = getMergeFunction(key, options)(target[key], source[key], options);
|
|
72
|
-
}
|
|
73
|
-
else {
|
|
74
|
-
destination[key] = options.cloneUnlessOtherwiseSpecified
|
|
75
|
-
? options.cloneUnlessOtherwiseSpecified(source[key], options)
|
|
76
|
-
: source[key];
|
|
77
|
-
}
|
|
78
|
-
});
|
|
79
|
-
return destination;
|
|
80
|
-
}
|
|
81
|
-
function deepmerge(target, source, options) {
|
|
82
|
-
options = options || {};
|
|
83
|
-
const mergeOptions = {
|
|
84
|
-
arrayMerge: options.arrayMerge || defaultArrayMerge,
|
|
85
|
-
isMergeableObject: options.isMergeableObject || isMergeableObject,
|
|
86
|
-
cloneUnlessOtherwiseSpecified: options.cloneUnlessOtherwiseSpecified || cloneUnlessOtherwiseSpecified,
|
|
87
|
-
clone: options.clone,
|
|
88
|
-
customMerge: options.customMerge,
|
|
89
|
-
};
|
|
90
|
-
const sourceIsArray = Array.isArray(source);
|
|
91
|
-
const targetIsArray = Array.isArray(target);
|
|
92
|
-
const sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;
|
|
93
|
-
if (!sourceAndTargetTypesMatch) {
|
|
94
|
-
return mergeOptions.cloneUnlessOtherwiseSpecified(source, mergeOptions);
|
|
95
|
-
}
|
|
96
|
-
else if (sourceIsArray) {
|
|
97
|
-
return mergeOptions.arrayMerge?.(target, source, mergeOptions);
|
|
98
|
-
}
|
|
99
|
-
else {
|
|
100
|
-
return mergeObject(target, source, mergeOptions);
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
function deepmergeAll(array, options) {
|
|
104
|
-
if (!Array.isArray(array)) {
|
|
105
|
-
throw new Error("first argument should be an array");
|
|
106
|
-
}
|
|
107
|
-
return array.reduce((prev, next) => {
|
|
108
|
-
return deepmerge(prev, next, options);
|
|
109
|
-
}, {});
|
|
110
|
-
}
|
|
111
|
-
deepmerge.all = deepmergeAll;
|
|
112
|
-
export default deepmerge;
|
|
113
|
-
//# sourceMappingURL=deepmerge.helper.js.map
|
|
1
|
+
"use strict";function f(e){return a(e)&&!o(e)}function a(e){return!!e&&typeof e=="object"}function o(e){const r=Object.prototype.toString.call(e);return r==="[object RegExp]"||r==="[object Date]"}function b(e){return Array.isArray(e)?[]:{}}function i(e){const r=Object.keys(e),n=O(e);return[...r,...n]}function O(e){return Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(e).filter(function(r){return Object.propertyIsEnumerable.call(e,r)}):[]}function y(e,r){return r.clone!==!1&&r.isMergeableObject?.(e)?s(b(e),e,r):e}function g(e,r,n){return e.concat(r).map(function(t){return n.cloneUnlessOtherwiseSpecified(t,n)})}function j(e,r){if(!r.customMerge)return s;const n=r.customMerge(e);return typeof n=="function"?n:s}function l(e,r){try{return r in e}catch{return!1}}function m(e,r){return l(e,r)&&!(Object.hasOwnProperty.call(e,r)&&Object.propertyIsEnumerable.call(e,r))}function d(e,r,n){const t={};return n.isMergeableObject?.(e)&&i(e).forEach(function(c){t[c]=n.cloneUnlessOtherwiseSpecified?n.cloneUnlessOtherwiseSpecified(e[c],n):e[c]}),i(r).forEach(function(c){m(e,c)||(l(e,c)&&n.isMergeableObject?.(r[c])?t[c]=j(c,n)(e[c],r[c],n):t[c]=n.cloneUnlessOtherwiseSpecified?n.cloneUnlessOtherwiseSpecified(r[c],n):r[c])}),t}function s(e,r,n){n=n||{};const t={arrayMerge:n.arrayMerge||g,isMergeableObject:n.isMergeableObject||f,cloneUnlessOtherwiseSpecified:n.cloneUnlessOtherwiseSpecified||y,clone:n.clone,customMerge:n.customMerge},c=Array.isArray(r),u=Array.isArray(e);return c===u?c?t.arrayMerge?.(e,r,t):d(e,r,t):t.cloneUnlessOtherwiseSpecified(r,t)}function M(e,r){if(!Array.isArray(e))throw new Error("first argument should be an array");return e.reduce((n,t)=>s(n,t,r),{})}s.all=M;export default s;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";export function applyStrictRoutingRules(a,r){const t=a?.routers?.strict||!1,e=r||{};return t===!0?{...e,disable:typeof e.disable=="boolean"?e.disable:{createOne:!0,findOne:!0,updateOne:!0,deleteOne:!0,createMany:!0,findMany:!0,updateMany:!0,deleteMany:!0,...typeof e.disable=="object"?e.disable:{}}}:t==="no-bulk"?{...e,disable:typeof e.disable=="boolean"?e.disable:{createMany:!0,updateMany:!0,deleteMany:!0,...typeof e.disable=="object"?e.disable:{}}}:e}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dynamic-loader.helpers.js","sourceRoot":"","sources":["../../../../src/utils/helpers/dynamic-loader.helpers.ts"],"names":[],"mappings":"AAKA,MAAM,UAAU,uBAAuB,CACrC,WAAwB,EACxB,YAA2B;IAE3B,MAAM,UAAU,GAAG,WAAW,EAAE,OAAO,EAAE,MAAM,IAAI,KAAK,CAAC;IAEzD,MAAM,MAAM,GAAG,YAAY,IAAI,EAAE,CAAC;IAElC,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;QACxB,OAAO;YACL,GAAG,MAAM;YACT,OAAO,EACL,OAAO,MAAM,CAAC,OAAO,KAAK,SAAS;gBACjC,CAAC,CAAC,MAAM,CAAC,OAAO;gBAChB,CAAC,CAAC;oBACE,SAAS,EAAE,IAAI;oBACf,OAAO,EAAE,IAAI;oBACb,SAAS,EAAE,IAAI;oBACf,SAAS,EAAE,IAAI;oBACf,UAAU,EAAE,IAAI;oBAChB,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAE,IAAI;oBAChB,UAAU,EAAE,IAAI;oBAChB,GAAG,CAAC,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;iBAC9D;SACR,CAAC;IACJ,CAAC;SAAM,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QACpC,OAAO;YACL,GAAG,MAAM;YACT,OAAO,EACL,OAAO,MAAM,CAAC,OAAO,KAAK,SAAS;gBACjC,CAAC,CAAC,MAAM,CAAC,OAAO;gBAChB,CAAC,CAAC;oBACE,UAAU,EAAE,IAAI;oBAChB,UAAU,EAAE,IAAI;oBAChB,UAAU,EAAE,IAAI;oBAChB,GAAG,CAAC,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;iBAC9D;SACR,CAAC;IACJ,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC","sourcesContent":["import { ArkosConfig, RouterConfig } from \"../../exports\";\n\n/**\n * Applies strict routing rules to module configuration\n */\nexport function applyStrictRoutingRules(\n arkosConfig: ArkosConfig,\n moduleConfig?: RouterConfig\n): RouterConfig {\n const strictMode = arkosConfig?.routers?.strict || false;\n\n const config = moduleConfig || {};\n\n if (strictMode === true) {\n return {\n ...config,\n disable:\n typeof config.disable === \"boolean\"\n ? config.disable\n : {\n createOne: true,\n findOne: true,\n updateOne: true,\n deleteOne: true,\n createMany: true,\n findMany: true,\n updateMany: true,\n deleteMany: true,\n ...(typeof config.disable === \"object\" ? config.disable : {}),\n },\n };\n } else if (strictMode === \"no-bulk\") {\n return {\n ...config,\n disable:\n typeof config.disable === \"boolean\"\n ? config.disable\n : {\n createMany: true,\n updateMany: true,\n deleteMany: true,\n ...(typeof config.disable === \"object\" ? config.disable : {}),\n },\n };\n }\n\n return config;\n}\n"]}
|
|
@@ -1,52 +1 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import fs from "fs";
|
|
3
|
-
import path from "path";
|
|
4
|
-
export const statAsync = promisify(fs.stat);
|
|
5
|
-
export const accessAsync = promisify(fs.access);
|
|
6
|
-
export const mkdirAsync = promisify(fs.mkdir);
|
|
7
|
-
export const crd = () => process.env.ARKOS_BUILD === "true"
|
|
8
|
-
? process.cwd() + "/.build/"
|
|
9
|
-
: process.cwd();
|
|
10
|
-
export function fullCleanCwd(path) {
|
|
11
|
-
if (typeof path !== "string")
|
|
12
|
-
throw new Error("Path must be a string");
|
|
13
|
-
const cwd = process.cwd().replace(/\/+$/, "");
|
|
14
|
-
const escapedCwd = cwd.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
15
|
-
return path.replace(new RegExp(`${escapedCwd}/?`, "g"), "");
|
|
16
|
-
}
|
|
17
|
-
export let userFileExtension;
|
|
18
|
-
export const getUserFileExtension = () => {
|
|
19
|
-
if (userFileExtension)
|
|
20
|
-
return userFileExtension;
|
|
21
|
-
try {
|
|
22
|
-
const currentDir = process.cwd();
|
|
23
|
-
const hasTsConfig = fs.existsSync(path.join(currentDir, "tsconfig.json"));
|
|
24
|
-
const hasAppTs = fs.existsSync(path.join(currentDir, "src", "app.ts"));
|
|
25
|
-
const hasAppJs = fs.existsSync(path.join(currentDir, "src", "app.js"));
|
|
26
|
-
const isBuildMode = process.env.ARKOS_BUILD === "true";
|
|
27
|
-
if (isBuildMode)
|
|
28
|
-
userFileExtension = "js";
|
|
29
|
-
else if (hasTsConfig)
|
|
30
|
-
userFileExtension = "ts";
|
|
31
|
-
else if (hasAppTs && !hasAppJs)
|
|
32
|
-
userFileExtension = "ts";
|
|
33
|
-
else if (hasAppJs)
|
|
34
|
-
userFileExtension = "js";
|
|
35
|
-
else
|
|
36
|
-
userFileExtension = "js";
|
|
37
|
-
return userFileExtension;
|
|
38
|
-
}
|
|
39
|
-
catch (e) {
|
|
40
|
-
userFileExtension = "js";
|
|
41
|
-
return userFileExtension;
|
|
42
|
-
}
|
|
43
|
-
};
|
|
44
|
-
export function checkFileExists(filePath) {
|
|
45
|
-
try {
|
|
46
|
-
return fs.existsSync(path.resolve(filePath));
|
|
47
|
-
}
|
|
48
|
-
catch (error) {
|
|
49
|
-
return false;
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
//# sourceMappingURL=fs.helpers.js.map
|
|
1
|
+
"use strict";import e from"fs";import r from"path";export const crd=()=>process.env.ARKOS_BUILD==="true"?process.cwd()+"/.build/":process.cwd();export function fullCleanCwd(s){if(typeof s!="string")throw new Error("Path must be a string");const c=process.cwd().replace(/\/+$/,"").replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return s.replace(new RegExp(`${c}/?`,"g"),"")}export let userFileExtension;export const getUserFileExtension=()=>{if(userFileExtension)return userFileExtension;try{const s=process.cwd(),t=e.existsSync(r.join(s,"tsconfig.json")),c=e.existsSync(r.join(s,"src","app.ts")),n=e.existsSync(r.join(s,"src","app.js"));return process.env.ARKOS_BUILD==="true"?userFileExtension="js":t||c&&!n?userFileExtension="ts":userFileExtension="js",userFileExtension}catch{return userFileExtension="js",userFileExtension}};export function checkFileExists(s){try{return e.existsSync(r.resolve(s))}catch{return!1}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fs.helpers.js","sourceRoot":"","sources":["../../../../src/utils/helpers/fs.helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"fs.helpers.js","sourceRoot":"","sources":["../../../../src/utils/helpers/fs.helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,MAAM,CAAC,MAAM,GAAG,GAAG,GAAG,EAAE,CACtB,OAAO,CAAC,GAAG,CAAC,WAAW,KAAK,MAAM;IAChC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,UAAU;IAC5B,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;AAQpB,MAAM,UAAU,YAAY,CAAC,IAAY;IACvC,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;IAEvE,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAC9C,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;IAE9D,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,GAAG,UAAU,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;AAC9D,CAAC;AAED,MAAM,CAAC,IAAI,iBAA0C,CAAC;AAOtD,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAgB,EAAE;IACpD,IAAI,iBAAiB;QAAE,OAAO,iBAAiB,CAAC;IAEhD,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QAGjC,MAAM,WAAW,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC,CAAC;QAG1E,MAAM,QAAQ,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;QACvE,MAAM,QAAQ,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;QAGvE,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,KAAK,MAAM,CAAC;QAGvD,IAAI,WAAW;YAAE,iBAAiB,GAAG,IAAI,CAAC;aACrC,IAAI,WAAW;YAAE,iBAAiB,GAAG,IAAI,CAAC;aAC1C,IAAI,QAAQ,IAAI,CAAC,QAAQ;YAAE,iBAAiB,GAAG,IAAI,CAAC;aACpD,IAAI,QAAQ;YAAE,iBAAiB,GAAG,IAAI,CAAC;;YACvC,iBAAiB,GAAG,IAAI,CAAC;QAE9B,OAAO,iBAAiB,CAAC;IAC3B,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QAEX,iBAAiB,GAAG,IAAI,CAAC;QACzB,OAAO,iBAAiB,CAAC;IAC3B,CAAC;AACH,CAAC,CAAC;AAgBF,MAAM,UAAU,eAAe,CAAC,QAAgB;IAC9C,IAAI,CAAC;QACH,OAAO,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC/C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC","sourcesContent":["import fs from \"fs\";\nimport path from \"path\";\n\nexport const crd = () =>\n process.env.ARKOS_BUILD === \"true\"\n ? process.cwd() + \"/.build/\"\n : process.cwd();\n\n/**\n * Removes the current working directory prefix from the given path.\n * Handles cases with or without a trailing slash in cwd.\n * @param path - The path to clean\n * @returns The path without the cwd prefix\n */\nexport function fullCleanCwd(path: string): string {\n if (typeof path !== \"string\") throw new Error(\"Path must be a string\");\n\n const cwd = process.cwd().replace(/\\/+$/, \"\"); // remove trailing slashes\n const escapedCwd = cwd.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\"); // escape regex special chars\n\n return path.replace(new RegExp(`${escapedCwd}/?`, \"g\"), \"\"); // remove cwd + optional slash\n}\n\nexport let userFileExtension: \"ts\" | \"js\" | undefined;\n\n/**\n * Detects the file extension that should be used in the current execution context\n * Returns 'ts' when TypeScript config exists and not in build mode, otherwise 'js'\n * @returns 'ts' | 'js'\n */\nexport const getUserFileExtension = (): \"ts\" | \"js\" => {\n if (userFileExtension) return userFileExtension;\n\n try {\n const currentDir = process.cwd();\n\n // Check for tsconfig.json in current directory\n const hasTsConfig = fs.existsSync(path.join(currentDir, \"tsconfig.json\"));\n\n // Check for main app files\n const hasAppTs = fs.existsSync(path.join(currentDir, \"src\", \"app.ts\"));\n const hasAppJs = fs.existsSync(path.join(currentDir, \"src\", \"app.js\"));\n\n // Check environment variable for build mode\n const isBuildMode = process.env.ARKOS_BUILD === \"true\";\n\n // Decision logic (prioritized)\n if (isBuildMode) userFileExtension = \"js\";\n else if (hasTsConfig) userFileExtension = \"ts\";\n else if (hasAppTs && !hasAppJs) userFileExtension = \"ts\";\n else if (hasAppJs) userFileExtension = \"js\";\n else userFileExtension = \"js\";\n\n return userFileExtension;\n } catch (e) {\n // Default to js if anything goes wrong\n userFileExtension = \"js\";\n return userFileExtension;\n }\n};\n\n/**\n * Checks if a file exists at the specified file path.\n *\n * @param filePath - The path to the file to check\n * @returns {boolean} True if the file exists, false otherwise or if there's an error\n *\n * @example\n * ```ts\n * const exists = checkFileExists('./path/to/file.txt');\n * if (exists) {\n * console.info('File exists!');\n * }\n * ```\n */\nexport function checkFileExists(filePath: string): boolean {\n try {\n return fs.existsSync(path.resolve(filePath));\n } catch (error) {\n return false;\n }\n}\n"]}
|
|
@@ -1,47 +1 @@
|
|
|
1
|
-
import fs from "
|
|
2
|
-
import path from "path";
|
|
3
|
-
import { createRequire } from "module";
|
|
4
|
-
import { pathToFileURL } from "url";
|
|
5
|
-
export function getPackageJson() {
|
|
6
|
-
try {
|
|
7
|
-
const pkgPath = path.join(process.cwd(), "package.json");
|
|
8
|
-
if (fs.existsSync(pkgPath)) {
|
|
9
|
-
return JSON.parse(fs.readFileSync(pkgPath, "utf8"));
|
|
10
|
-
}
|
|
11
|
-
}
|
|
12
|
-
catch (err) {
|
|
13
|
-
console.error("Error checking package.json:", err);
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
export function isEsm() {
|
|
17
|
-
const pkg = getPackageJson();
|
|
18
|
-
return pkg?.type === "module";
|
|
19
|
-
}
|
|
20
|
-
export async function importModule(modulePath, options = { fixExtension: true }) {
|
|
21
|
-
if (!options.fixExtension || modulePath.endsWith(".ts") || !isEsm())
|
|
22
|
-
return await import(modulePath);
|
|
23
|
-
const userRequire = createRequire(pathToFileURL(process.cwd() + "/package.json"));
|
|
24
|
-
const resolved = userRequire.resolve(modulePath);
|
|
25
|
-
return await import(pathToFileURL(resolved));
|
|
26
|
-
}
|
|
27
|
-
export function detectPackageManagerFromUserAgent() {
|
|
28
|
-
const userAgent = process.env.npm_config_user_agent || "";
|
|
29
|
-
if (!userAgent)
|
|
30
|
-
return "npm";
|
|
31
|
-
if (userAgent.includes("cnpm"))
|
|
32
|
-
return "cnpm";
|
|
33
|
-
if (userAgent.includes("pnpm"))
|
|
34
|
-
return "pnpm";
|
|
35
|
-
if (userAgent.includes("yarn"))
|
|
36
|
-
return "yarn";
|
|
37
|
-
if (userAgent.includes("npm"))
|
|
38
|
-
return "npm";
|
|
39
|
-
if (userAgent.includes("bun"))
|
|
40
|
-
return "bun";
|
|
41
|
-
if (userAgent.includes("corepack"))
|
|
42
|
-
return "corepack";
|
|
43
|
-
if (userAgent.includes("deno"))
|
|
44
|
-
return "deno";
|
|
45
|
-
return "npm";
|
|
46
|
-
}
|
|
47
|
-
//# sourceMappingURL=global.helpers.js.map
|
|
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 n=i.join(process.cwd(),"package.json");if(e.existsSync(n))return JSON.parse(e.readFileSync(n,"utf8"))}catch(n){console.error("Error checking package.json:",n)}}export function isEsm(){return getPackageJson()?.type==="module"}const s=c(t(process.cwd()+"/package.json"));export async function importModule(n,r={fixExtension:!0}){if(!r.fixExtension||n.endsWith(".ts")||!isEsm())return await import(n);const o=s.resolve(n);return await import(t(o))}export async function importEsmPreventingTsTransformation(n){return await new Function("path","return import(path)")(n)}export function detectPackageManagerFromUserAgent(){const n=process.env.npm_config_user_agent||"";return n?n.includes("cnpm")?"cnpm":n.includes("pnpm")?"pnpm":n.includes("yarn")?"yarn":n.includes("npm")?"npm":n.includes("bun")?"bun":n.includes("corepack")?"corepack":n.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;
|
|
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;AAGD,MAAM,WAAW,GAAG,aAAa,CAC/B,aAAa,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,eAAe,CAAC,CAC/C,CAAC;AAEF,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;IAElC,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\n// When importing user modules: mainly on ESM environment\nconst userRequire = createRequire(\n pathToFileURL(process.cwd() + \"/package.json\")\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 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,44 +1 @@
|
|
|
1
|
-
import fs from "fs";
|
|
2
|
-
import catchAsync from "../../modules/error-handler/utils/catch-async.js";
|
|
3
|
-
import AppError from "../../modules/error-handler/utils/app-error.js";
|
|
4
|
-
import { crd, getUserFileExtension as ext } from "./fs.helpers.js";
|
|
5
|
-
import { importModule } from "./global.helpers.js";
|
|
6
|
-
export let prismaInstance = null;
|
|
7
|
-
export async function loadPrismaModule() {
|
|
8
|
-
if (!prismaInstance) {
|
|
9
|
-
try {
|
|
10
|
-
let prismaPath = `${crd()}/src/utils/prisma.${ext()}`;
|
|
11
|
-
if (!fs.existsSync(prismaPath))
|
|
12
|
-
prismaPath = `${crd()}/src/utils/prisma/index.${ext()}`;
|
|
13
|
-
if (!fs.existsSync(prismaPath))
|
|
14
|
-
throw new Error("Could not found exported prisma insteance");
|
|
15
|
-
const prismaModule = await importModule(prismaPath, {
|
|
16
|
-
fixExtension: false,
|
|
17
|
-
});
|
|
18
|
-
prismaInstance = prismaModule.default || prismaModule.prisma;
|
|
19
|
-
if (!prismaInstance)
|
|
20
|
-
throw new Error("Prisma not found");
|
|
21
|
-
}
|
|
22
|
-
catch (error) {
|
|
23
|
-
if (error.message === "Prisma not found")
|
|
24
|
-
throw new AppError(`Could not initialize Prisma module. Make sure your prisma instance is exported under src/utils/prisma.${ext()} or src/utils/prisma/index.${ext()}, read more about Arkos' Project Structure under https://www.arkosjs.com/docs/project-structure#root-structure`, 500, {}, "PrismaInstanceNotFound");
|
|
25
|
-
throw error;
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
return prismaInstance;
|
|
29
|
-
}
|
|
30
|
-
export function getPrismaInstance() {
|
|
31
|
-
return prismaInstance;
|
|
32
|
-
}
|
|
33
|
-
export const checkDatabaseConnection = catchAsync(async (req, res, next) => {
|
|
34
|
-
const prisma = await loadPrismaModule();
|
|
35
|
-
try {
|
|
36
|
-
await prisma.$connect();
|
|
37
|
-
next();
|
|
38
|
-
}
|
|
39
|
-
catch (error) {
|
|
40
|
-
console.error("Database connection error", error.message);
|
|
41
|
-
next(new AppError(error.message, 503));
|
|
42
|
-
}
|
|
43
|
-
});
|
|
44
|
-
//# sourceMappingURL=prisma.helpers.js.map
|
|
1
|
+
"use strict";import s from"fs";import i from"../../modules/error-handler/utils/app-error.js";import{crd as e,getUserFileExtension as t}from"./fs.helpers.js";import{importModule as n}from"./global.helpers.js";export let prismaInstance=null;export async function loadPrismaModule(){if(!prismaInstance)try{let r=`${e()}/src/utils/prisma.${t()}`;if(s.existsSync(r)||(r=`${e()}/src/utils/prisma/index.${t()}`),!s.existsSync(r))throw new Error(`Could not found exported prisma insteance at ${r}`);const o=await n(r,{fixExtension:!1});if(prismaInstance=o.default||o.prisma,!prismaInstance)throw new Error("Prisma not found")}catch(r){throw r.message==="Prisma not found"?new i(`Could not initialize Prisma module. Make sure your prisma instance is exported under src/utils/prisma.${t()} or src/utils/prisma/index.${t()}, read more about Arkos.js Project Structure under https://www.arkosjs.com/docs/project-structure#root-structure`,500,{},"PrismaInstanceNotFound"):r}return prismaInstance}export function getPrismaInstance(){return prismaInstance}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prisma.helpers.js","sourceRoot":"","sources":["../../../../src/utils/helpers/prisma.helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"prisma.helpers.js","sourceRoot":"","sources":["../../../../src/utils/helpers/prisma.helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,QAAQ,MAAM,6CAA6C,CAAC;AACnE,OAAO,EAAE,GAAG,EAAE,oBAAoB,IAAI,GAAG,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEhD,MAAM,CAAC,IAAI,cAAc,GAAQ,IAAI,CAAC;AAEtC,MAAM,CAAC,KAAK,UAAU,gBAAgB;IACpC,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,IAAI,CAAC;YACH,IAAI,UAAU,GAAG,GAAG,GAAG,EAAE,qBAAqB,GAAG,EAAE,EAAE,CAAC;YAEtD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC;gBAC5B,UAAU,GAAG,GAAG,GAAG,EAAE,2BAA2B,GAAG,EAAE,EAAE,CAAC;YAE1D,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC;gBAC5B,MAAM,IAAI,KAAK,CACb,gDAAgD,UAAU,EAAE,CAC7D,CAAC;YAEJ,MAAM,YAAY,GAAG,MAAM,YAAY,CAAC,UAAU,EAAE;gBAClD,YAAY,EAAE,KAAK;aACpB,CAAC,CAAC;YACH,cAAc,GAAG,YAAY,CAAC,OAAO,IAAI,YAAY,CAAC,MAAM,CAAC;YAE7D,IAAI,CAAC,cAAc;gBAAE,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;QAC3D,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,IAAI,KAAK,CAAC,OAAO,KAAK,kBAAkB;gBACtC,MAAM,IAAI,QAAQ,CAChB,yGAAyG,GAAG,EAAE,8BAA8B,GAAG,EAAE,kHAAkH,EACnQ,GAAG,EACH,EAAE,EACF,wBAAwB,CACzB,CAAC;YACJ,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IACD,OAAO,cAAc,CAAC;AACxB,CAAC;AAED,MAAM,UAAU,iBAAiB;IAC/B,OAAO,cAAc,CAAC;AACxB,CAAC","sourcesContent":["import fs from \"fs\";\nimport AppError from \"../../modules/error-handler/utils/app-error\";\nimport { crd, getUserFileExtension as ext } from \"./fs.helpers\";\nimport { importModule } from \"./global.helpers\";\n\nexport let prismaInstance: any = null;\n\nexport async function loadPrismaModule() {\n if (!prismaInstance) {\n try {\n let prismaPath = `${crd()}/src/utils/prisma.${ext()}`;\n\n if (!fs.existsSync(prismaPath))\n prismaPath = `${crd()}/src/utils/prisma/index.${ext()}`;\n\n if (!fs.existsSync(prismaPath))\n throw new Error(\n `Could not found exported prisma insteance at ${prismaPath}`\n );\n\n const prismaModule = await importModule(prismaPath, {\n fixExtension: false,\n });\n prismaInstance = prismaModule.default || prismaModule.prisma;\n\n if (!prismaInstance) throw new Error(\"Prisma not found\");\n } catch (error: any) {\n if (error.message === \"Prisma not found\")\n throw new AppError(\n `Could not initialize Prisma module. Make sure your prisma instance is exported under src/utils/prisma.${ext()} or src/utils/prisma/index.${ext()}, read more about Arkos.js Project Structure under https://www.arkosjs.com/docs/project-structure#root-structure`,\n 500,\n {},\n \"PrismaInstanceNotFound\"\n );\n throw error;\n }\n }\n return prismaInstance;\n}\n\nexport function getPrismaInstance() {\n return prismaInstance;\n}\n"]}
|
|
@@ -1,40 +1 @@
|
|
|
1
|
-
export const parse
|
|
2
|
-
switch (typeof target) {
|
|
3
|
-
case "string":
|
|
4
|
-
if (target === "") {
|
|
5
|
-
return "";
|
|
6
|
-
}
|
|
7
|
-
else if (options.parseNull && target === "null") {
|
|
8
|
-
return null;
|
|
9
|
-
}
|
|
10
|
-
else if (options.parseUndefined && target === "undefined") {
|
|
11
|
-
return undefined;
|
|
12
|
-
}
|
|
13
|
-
else if (options.parseBoolean &&
|
|
14
|
-
(target === "true" || target === "false")) {
|
|
15
|
-
return target === "true";
|
|
16
|
-
}
|
|
17
|
-
else if (options.parseNumber && !isNaN(Number(target))) {
|
|
18
|
-
return Number(target);
|
|
19
|
-
}
|
|
20
|
-
else {
|
|
21
|
-
return target;
|
|
22
|
-
}
|
|
23
|
-
case "object":
|
|
24
|
-
if (Array.isArray(target)) {
|
|
25
|
-
return target.map((x) => parse(x, options));
|
|
26
|
-
}
|
|
27
|
-
else {
|
|
28
|
-
const obj = target;
|
|
29
|
-
Object.keys(obj).map((key) => (obj[key] = parse(target[key], options)));
|
|
30
|
-
return obj;
|
|
31
|
-
}
|
|
32
|
-
default:
|
|
33
|
-
return target;
|
|
34
|
-
}
|
|
35
|
-
};
|
|
36
|
-
export const queryParser = (options) => (req, res, next) => {
|
|
37
|
-
req.query = parse(req.query, options);
|
|
38
|
-
next();
|
|
39
|
-
};
|
|
40
|
-
//# sourceMappingURL=query-parser.helpers.js.map
|
|
1
|
+
"use strict";export const parse=(e,r)=>{switch(typeof e){case"string":return e===""?"":r.parseNull&&e==="null"?null:r.parseUndefined&&e==="undefined"?void 0:r.parseBoolean&&(e==="true"||e==="false")?e==="true":r.parseNumber&&!isNaN(Number(e))?Number(e):e;case"object":if(Array.isArray(e))return e.map(u=>parse(u,r));{const u=e;return Object.keys(u).map(s=>u[s]=parse(e[s],r)),u}default:return e}},queryParser=e=>(r,u,s)=>{r.query=parse(r.query,e),s()};
|
|
@@ -1,16 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
export const safeCatchAsync = (middleware) => {
|
|
3
|
-
return middleware ? catchAsync(middleware) : undefined;
|
|
4
|
-
};
|
|
5
|
-
export const processMiddleware = (middleware) => {
|
|
6
|
-
if (!middleware)
|
|
7
|
-
return [];
|
|
8
|
-
if (Array.isArray(middleware)) {
|
|
9
|
-
return middleware
|
|
10
|
-
.filter((mw) => !!mw)
|
|
11
|
-
.map((mw) => safeCatchAsync(mw));
|
|
12
|
-
}
|
|
13
|
-
else
|
|
14
|
-
return [safeCatchAsync(middleware)];
|
|
15
|
-
};
|
|
16
|
-
//# sourceMappingURL=routers.helpers.js.map
|
|
1
|
+
"use strict";import n from"../../modules/error-handler/utils/catch-async.js";function r(t){if(t&&typeof t!="function")throw Error(`Validation Error: Invalid interceptor of type ${typeof t}, they must be a function or an array of function. checkout https://arkosjs.com/docs/core-concepts/interceptor-middlewares`)}export const safeCatchAsync=t=>{if(t&&typeof t!="function")throw Error(`Validation Error: Invalid interceptor of type ${typeof t}, they must be a function or an array of function. checkout https://arkosjs.com/docs/core-concepts/interceptor-middlewares`);return t?n(t):void 0},processMiddleware=t=>t?Array.isArray(t)?t.filter(o=>!!o).map(o=>(r(o),safeCatchAsync(o))):(r(t),[safeCatchAsync(t)]):[];
|