arkos 2.0.0-next.17 → 2.0.0-next.18
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/cli.js +1 -8
- package/dist/esm/app.js +2 -2
- package/dist/esm/app.js.map +1 -1
- package/dist/esm/components/arkos-route-hook/index.js +2 -1
- package/dist/esm/components/arkos-route-hook/index.js.map +1 -1
- package/dist/esm/components/arkos-route-hook/reader.js.map +1 -1
- package/dist/esm/components/arkos-route-hook/types.js.map +1 -1
- package/dist/esm/exports/index.js +1 -2
- package/dist/esm/exports/index.js.map +1 -1
- package/dist/esm/exports/services/index.js.map +1 -1
- package/dist/esm/modules/base/base.controller.js +4 -4
- package/dist/esm/modules/base/base.controller.js.map +1 -1
- package/dist/esm/modules/base/base.service.js +0 -47
- package/dist/esm/modules/base/base.service.js.map +1 -1
- package/dist/esm/modules/base/types/base.service.types.js.map +1 -1
- package/dist/esm/modules/file-upload/file-upload.router.js.map +1 -1
- package/dist/esm/modules/swagger/swagger.router.js.map +1 -1
- package/dist/esm/types/arkos.js.map +1 -1
- package/dist/esm/utils/arkos-router/utils/helpers/apply-arkos-router-proxy.js +4 -0
- package/dist/esm/utils/arkos-router/utils/helpers/apply-arkos-router-proxy.js.map +1 -1
- package/dist/esm/utils/cli/generate.js +0 -90
- package/dist/esm/utils/cli/generate.js.map +1 -1
- package/dist/esm/utils/cli/index.js +9 -73
- package/dist/esm/utils/cli/index.js.map +1 -1
- package/dist/esm/utils/cli/utils/cli.helpers.js +1 -1
- package/dist/esm/utils/cli/utils/template-generator/templates/generate-multiple-components.js +0 -51
- package/dist/esm/utils/cli/utils/template-generator/templates/generate-multiple-components.js.map +1 -1
- package/dist/esm/utils/cli/utils/template-generator/templates/router-template.js +11 -4
- package/dist/esm/utils/cli/utils/template-generator/templates/router-template.js.map +1 -1
- package/dist/esm/utils/cli/utils/template-generator/templates/service-template.js +2 -2
- package/dist/esm/utils/cli/utils/template-generator/templates/service-template.js.map +1 -1
- package/dist/esm/utils/cli/utils/template-generators.js +27 -24
- package/dist/esm/utils/cli/utils/template-generators.js.map +1 -1
- package/dist/esm/utils/prisma/prisma-json-schema-generator.js +19 -18
- package/dist/esm/utils/prisma/prisma-json-schema-generator.js.map +1 -1
- package/dist/types/app.d.ts +4 -0
- package/dist/types/components/arkos-route-hook/index.d.ts +7 -1
- package/dist/types/components/arkos-route-hook/reader.d.ts +1 -1
- package/dist/types/components/arkos-route-hook/types.d.ts +4 -6
- package/dist/types/exports/index.d.ts +1 -2
- package/dist/types/exports/services/index.d.ts +2 -2
- package/dist/types/modules/base/base.service.d.ts +1 -8
- package/dist/types/modules/base/types/base.service.types.d.ts +11 -0
- package/dist/types/types/arkos.d.ts +1 -2
- package/dist/types/utils/cli/generate.d.ts +11 -10
- package/package.json +16 -18
- package/dist/cjs/app.js +0 -114
- package/dist/cjs/app.js.map +0 -1
- package/dist/cjs/components/arkos-gateway/arkos-gateway.js +0 -344
- package/dist/cjs/components/arkos-gateway/arkos-gateway.js.map +0 -1
- package/dist/cjs/components/arkos-gateway/socket-extensions.js +0 -166
- package/dist/cjs/components/arkos-gateway/socket-extensions.js.map +0 -1
- package/dist/cjs/components/arkos-gateway/types.js +0 -7
- package/dist/cjs/components/arkos-gateway/types.js.map +0 -1
- package/dist/cjs/components/arkos-gateway/utils/helpers.js +0 -111
- package/dist/cjs/components/arkos-gateway/utils/helpers.js.map +0 -1
- package/dist/cjs/components/arkos-gateway/utils/memory-gateway-store.js +0 -51
- package/dist/cjs/components/arkos-gateway/utils/memory-gateway-store.js.map +0 -1
- package/dist/cjs/components/arkos-gateway/utils/multi-tier-arkos-gateway-store.js +0 -43
- package/dist/cjs/components/arkos-gateway/utils/multi-tier-arkos-gateway-store.js.map +0 -1
- package/dist/cjs/components/arkos-gateway/utils/rate-limiter.js +0 -17
- package/dist/cjs/components/arkos-gateway/utils/rate-limiter.js.map +0 -1
- package/dist/cjs/components/arkos-loadable-registry/index.js +0 -28
- package/dist/cjs/components/arkos-loadable-registry/index.js.map +0 -1
- package/dist/cjs/components/arkos-loadable-translator/index.js +0 -144
- package/dist/cjs/components/arkos-loadable-translator/index.js.map +0 -1
- package/dist/cjs/components/arkos-policy/index.js +0 -38
- package/dist/cjs/components/arkos-policy/index.js.map +0 -1
- package/dist/cjs/components/arkos-policy/types.js +0 -3
- package/dist/cjs/components/arkos-policy/types.js.map +0 -1
- package/dist/cjs/components/arkos-route-hook/index.js +0 -50
- package/dist/cjs/components/arkos-route-hook/index.js.map +0 -1
- package/dist/cjs/components/arkos-route-hook/reader.js +0 -47
- package/dist/cjs/components/arkos-route-hook/reader.js.map +0 -1
- package/dist/cjs/components/arkos-route-hook/types.js +0 -3
- package/dist/cjs/components/arkos-route-hook/types.js.map +0 -1
- package/dist/cjs/components/arkos-service-hook/index.js +0 -35
- package/dist/cjs/components/arkos-service-hook/index.js.map +0 -1
- package/dist/cjs/components/arkos-service-hook/reader.js +0 -30
- package/dist/cjs/components/arkos-service-hook/reader.js.map +0 -1
- package/dist/cjs/components/arkos-service-hook/types.js +0 -3
- package/dist/cjs/components/arkos-service-hook/types.js.map +0 -1
- package/dist/cjs/exports/auth/index.js +0 -6
- package/dist/cjs/exports/auth/index.js.map +0 -1
- package/dist/cjs/exports/config.js +0 -6
- package/dist/cjs/exports/config.js.map +0 -1
- package/dist/cjs/exports/controllers/index.js +0 -42
- package/dist/cjs/exports/controllers/index.js.map +0 -1
- package/dist/cjs/exports/error-handler/index.js +0 -26
- package/dist/cjs/exports/error-handler/index.js.map +0 -1
- package/dist/cjs/exports/index.js +0 -25
- package/dist/cjs/exports/index.js.map +0 -1
- package/dist/cjs/exports/middlewares/index.js +0 -7
- package/dist/cjs/exports/middlewares/index.js.map +0 -1
- package/dist/cjs/exports/prisma/index.js +0 -13
- package/dist/cjs/exports/prisma/index.js.map +0 -1
- package/dist/cjs/exports/services/index.js +0 -53
- package/dist/cjs/exports/services/index.js.map +0 -1
- package/dist/cjs/exports/utils/index.js +0 -26
- package/dist/cjs/exports/utils/index.js.map +0 -1
- package/dist/cjs/exports/validation/index.js +0 -11
- package/dist/cjs/exports/validation/index.js.map +0 -1
- package/dist/cjs/exports/websockets.js +0 -13
- package/dist/cjs/exports/websockets.js.map +0 -1
- package/dist/cjs/generated.js +0 -7
- package/dist/cjs/generated.js.map +0 -1
- package/dist/cjs/modules/auth/auth.controller.js +0 -254
- package/dist/cjs/modules/auth/auth.controller.js.map +0 -1
- package/dist/cjs/modules/auth/auth.router.js +0 -130
- package/dist/cjs/modules/auth/auth.router.js.map +0 -1
- package/dist/cjs/modules/auth/auth.service.js +0 -312
- package/dist/cjs/modules/auth/auth.service.js.map +0 -1
- package/dist/cjs/modules/auth/utils/auth-error-objects.js +0 -10
- package/dist/cjs/modules/auth/utils/auth-error-objects.js.map +0 -1
- package/dist/cjs/modules/auth/utils/auth-hooks-manager.js +0 -153
- package/dist/cjs/modules/auth/utils/auth-hooks-manager.js.map +0 -1
- package/dist/cjs/modules/auth/utils/auth-openapi-generator.js +0 -372
- package/dist/cjs/modules/auth/utils/auth-openapi-generator.js.map +0 -1
- package/dist/cjs/modules/auth/utils/auth-prisma-json-schema-generator.js +0 -101
- package/dist/cjs/modules/auth/utils/auth-prisma-json-schema-generator.js.map +0 -1
- package/dist/cjs/modules/auth/utils/docs-links.js +0 -9
- package/dist/cjs/modules/auth/utils/docs-links.js.map +0 -1
- package/dist/cjs/modules/auth/utils/helpers/auth.controller.helpers.js +0 -83
- package/dist/cjs/modules/auth/utils/helpers/auth.controller.helpers.js.map +0 -1
- package/dist/cjs/modules/auth/utils/services/auth-action.service.js +0 -156
- package/dist/cjs/modules/auth/utils/services/auth-action.service.js.map +0 -1
- package/dist/cjs/modules/base/base.controller.js +0 -293
- package/dist/cjs/modules/base/base.controller.js.map +0 -1
- package/dist/cjs/modules/base/base.middlewares.js +0 -229
- package/dist/cjs/modules/base/base.middlewares.js.map +0 -1
- package/dist/cjs/modules/base/base.router.js +0 -126
- package/dist/cjs/modules/base/base.router.js.map +0 -1
- package/dist/cjs/modules/base/base.service.js +0 -371
- package/dist/cjs/modules/base/base.service.js.map +0 -1
- package/dist/cjs/modules/base/types/base.service.types.js +0 -3
- package/dist/cjs/modules/base/types/base.service.types.js.map +0 -1
- package/dist/cjs/modules/base/utils/error-prettifier.js +0 -188
- package/dist/cjs/modules/base/utils/error-prettifier.js.map +0 -1
- package/dist/cjs/modules/base/utils/helpers/base.middlewares.helpers.js +0 -49
- package/dist/cjs/modules/base/utils/helpers/base.middlewares.helpers.js.map +0 -1
- package/dist/cjs/modules/base/utils/helpers/base.service.helpers.js +0 -243
- package/dist/cjs/modules/base/utils/helpers/base.service.helpers.js.map +0 -1
- package/dist/cjs/modules/base/utils/model-openapi-generator.js +0 -443
- package/dist/cjs/modules/base/utils/model-openapi-generator.js.map +0 -1
- package/dist/cjs/modules/base/utils/router-validator.js +0 -13
- package/dist/cjs/modules/base/utils/router-validator.js.map +0 -1
- package/dist/cjs/modules/base/utils/service-hooks-manager.js +0 -19
- package/dist/cjs/modules/base/utils/service-hooks-manager.js.map +0 -1
- package/dist/cjs/modules/debugger/debugger.service.js +0 -59
- package/dist/cjs/modules/debugger/debugger.service.js.map +0 -1
- package/dist/cjs/modules/email/email.service.js +0 -113
- package/dist/cjs/modules/email/email.service.js.map +0 -1
- package/dist/cjs/modules/error-handler/error-handler.controller.js +0 -70
- package/dist/cjs/modules/error-handler/error-handler.controller.js.map +0 -1
- package/dist/cjs/modules/error-handler/utils/app-error.js +0 -27
- package/dist/cjs/modules/error-handler/utils/app-error.js.map +0 -1
- package/dist/cjs/modules/error-handler/utils/catch-async.js +0 -21
- package/dist/cjs/modules/error-handler/utils/catch-async.js.map +0 -1
- package/dist/cjs/modules/error-handler/utils/error-handler.helpers.js +0 -104
- package/dist/cjs/modules/error-handler/utils/error-handler.helpers.js.map +0 -1
- package/dist/cjs/modules/error-handler/utils/errors.js +0 -158
- package/dist/cjs/modules/error-handler/utils/errors.js.map +0 -1
- package/dist/cjs/modules/error-handler/utils/get-handled-error.js +0 -107
- package/dist/cjs/modules/error-handler/utils/get-handled-error.js.map +0 -1
- package/dist/cjs/modules/error-handler/utils/multer-error-handler.js +0 -39
- package/dist/cjs/modules/error-handler/utils/multer-error-handler.js.map +0 -1
- package/dist/cjs/modules/file-upload/file-upload.controller.js +0 -252
- package/dist/cjs/modules/file-upload/file-upload.controller.js.map +0 -1
- package/dist/cjs/modules/file-upload/file-upload.router.js +0 -103
- package/dist/cjs/modules/file-upload/file-upload.router.js.map +0 -1
- package/dist/cjs/modules/file-upload/file-upload.service.js +0 -343
- package/dist/cjs/modules/file-upload/file-upload.service.js.map +0 -1
- package/dist/cjs/modules/file-upload/utils/file-upload-json-schema-generator.js +0 -351
- package/dist/cjs/modules/file-upload/utils/file-upload-json-schema-generator.js.map +0 -1
- package/dist/cjs/modules/file-upload/utils/helpers/file-extensions.js +0 -134
- package/dist/cjs/modules/file-upload/utils/helpers/file-extensions.js.map +0 -1
- package/dist/cjs/modules/file-upload/utils/helpers/file-upload.helpers.js +0 -100
- package/dist/cjs/modules/file-upload/utils/helpers/file-upload.helpers.js.map +0 -1
- package/dist/cjs/modules/swagger/swagger.router.js +0 -115
- package/dist/cjs/modules/swagger/swagger.router.js.map +0 -1
- package/dist/cjs/modules/swagger/utils/get-open-api-login-html.js +0 -308
- package/dist/cjs/modules/swagger/utils/get-open-api-login-html.js.map +0 -1
- package/dist/cjs/modules/swagger/utils/helpers/class-validator-to-json-schema.js +0 -53
- package/dist/cjs/modules/swagger/utils/helpers/class-validator-to-json-schema.js.map +0 -1
- package/dist/cjs/modules/swagger/utils/helpers/get-swagger-default-configs.js +0 -72
- package/dist/cjs/modules/swagger/utils/helpers/get-swagger-default-configs.js.map +0 -1
- package/dist/cjs/modules/swagger/utils/helpers/openapi-schema-converter.js +0 -333
- package/dist/cjs/modules/swagger/utils/helpers/openapi-schema-converter.js.map +0 -1
- package/dist/cjs/package.json +0 -3
- package/dist/cjs/server.js +0 -60
- package/dist/cjs/server.js.map +0 -1
- package/dist/cjs/types/arkos-config/utils.js +0 -3
- package/dist/cjs/types/arkos-config/utils.js.map +0 -1
- package/dist/cjs/types/arkos-prisma-input.js +0 -3
- package/dist/cjs/types/arkos-prisma-input.js.map +0 -1
- package/dist/cjs/types/arkos.js +0 -3
- package/dist/cjs/types/arkos.js.map +0 -1
- package/dist/cjs/types/auth.js +0 -3
- package/dist/cjs/types/auth.js.map +0 -1
- package/dist/cjs/types/index.js +0 -3
- package/dist/cjs/types/index.js.map +0 -1
- package/dist/cjs/types/new-arkos-config.js +0 -3
- package/dist/cjs/types/new-arkos-config.js.map +0 -1
- package/dist/cjs/types/router-config.js +0 -3
- package/dist/cjs/types/router-config.js.map +0 -1
- package/dist/cjs/types/upload.js +0 -3
- package/dist/cjs/types/upload.js.map +0 -1
- package/dist/cjs/types/validation/validation-manager.js +0 -55
- package/dist/cjs/types/validation/validation-manager.js.map +0 -1
- package/dist/cjs/types/validation/validator.js +0 -3
- package/dist/cjs/types/validation/validator.js.map +0 -1
- package/dist/cjs/utils/arkos-env.js +0 -9
- package/dist/cjs/utils/arkos-env.js.map +0 -1
- package/dist/cjs/utils/arkos-router/arkos-router-openapi-manager.js +0 -160
- package/dist/cjs/utils/arkos-router/arkos-router-openapi-manager.js.map +0 -1
- package/dist/cjs/utils/arkos-router/index.js +0 -165
- package/dist/cjs/utils/arkos-router/index.js.map +0 -1
- package/dist/cjs/utils/arkos-router/route-config-registry.js +0 -16
- package/dist/cjs/utils/arkos-router/route-config-registry.js.map +0 -1
- package/dist/cjs/utils/arkos-router/route-config-validator.js +0 -56
- package/dist/cjs/utils/arkos-router/route-config-validator.js.map +0 -1
- package/dist/cjs/utils/arkos-router/types/body-parser-config.js +0 -3
- package/dist/cjs/utils/arkos-router/types/body-parser-config.js.map +0 -1
- package/dist/cjs/utils/arkos-router/types/index.js +0 -3
- package/dist/cjs/utils/arkos-router/types/index.js.map +0 -1
- package/dist/cjs/utils/arkos-router/types/openapi-config.js +0 -3
- package/dist/cjs/utils/arkos-router/types/openapi-config.js.map +0 -1
- package/dist/cjs/utils/arkos-router/types/upload-config.js +0 -3
- package/dist/cjs/utils/arkos-router/types/upload-config.js.map +0 -1
- package/dist/cjs/utils/arkos-router/utils/helpers/apply-arkos-router-proxy.js +0 -190
- package/dist/cjs/utils/arkos-router/utils/helpers/apply-arkos-router-proxy.js.map +0 -1
- package/dist/cjs/utils/arkos-router/utils/helpers/index.js +0 -179
- package/dist/cjs/utils/arkos-router/utils/helpers/index.js.map +0 -1
- package/dist/cjs/utils/arkos-router/utils/helpers/upload-manager.js +0 -560
- package/dist/cjs/utils/arkos-router/utils/helpers/upload-manager.js.map +0 -1
- package/dist/cjs/utils/bundler.js +0 -163
- package/dist/cjs/utils/bundler.js.map +0 -1
- package/dist/cjs/utils/cli/build.js +0 -208
- package/dist/cjs/utils/cli/build.js.map +0 -1
- package/dist/cjs/utils/cli/dev.js +0 -131
- package/dist/cjs/utils/cli/dev.js.map +0 -1
- package/dist/cjs/utils/cli/export-auth-action.js +0 -80
- package/dist/cjs/utils/cli/export-auth-action.js.map +0 -1
- package/dist/cjs/utils/cli/generate.js +0 -333
- package/dist/cjs/utils/cli/generate.js.map +0 -1
- package/dist/cjs/utils/cli/index.js +0 -259
- package/dist/cjs/utils/cli/index.js.map +0 -1
- package/dist/cjs/utils/cli/prisma-generate.js +0 -112
- package/dist/cjs/utils/cli/prisma-generate.js.map +0 -1
- package/dist/cjs/utils/cli/start.js +0 -83
- package/dist/cjs/utils/cli/start.js.map +0 -1
- package/dist/cjs/utils/cli/utils/cli.helpers.js +0 -24
- package/dist/cjs/utils/cli/utils/cli.helpers.js.map +0 -1
- package/dist/cjs/utils/cli/utils/runtime-cli-commander.js +0 -118
- package/dist/cjs/utils/cli/utils/runtime-cli-commander.js.map +0 -1
- package/dist/cjs/utils/cli/utils/smart-fs-watcher.js +0 -73
- package/dist/cjs/utils/cli/utils/smart-fs-watcher.js.map +0 -1
- package/dist/cjs/utils/cli/utils/template-generator/templates/class-validator-dto-generator.js +0 -846
- package/dist/cjs/utils/cli/utils/template-generator/templates/class-validator-dto-generator.js.map +0 -1
- package/dist/cjs/utils/cli/utils/template-generator/templates/generate-controller-template.js +0 -64
- package/dist/cjs/utils/cli/utils/template-generator/templates/generate-controller-template.js.map +0 -1
- package/dist/cjs/utils/cli/utils/template-generator/templates/generate-multiple-components.js +0 -242
- package/dist/cjs/utils/cli/utils/template-generator/templates/generate-multiple-components.js.map +0 -1
- package/dist/cjs/utils/cli/utils/template-generator/templates/policy-template.js +0 -51
- package/dist/cjs/utils/cli/utils/template-generator/templates/policy-template.js.map +0 -1
- package/dist/cjs/utils/cli/utils/template-generator/templates/router-template.js +0 -23
- package/dist/cjs/utils/cli/utils/template-generator/templates/router-template.js.map +0 -1
- package/dist/cjs/utils/cli/utils/template-generator/templates/service-template.js +0 -50
- package/dist/cjs/utils/cli/utils/template-generator/templates/service-template.js.map +0 -1
- package/dist/cjs/utils/cli/utils/template-generator/templates/zod-schema-generator.js +0 -545
- package/dist/cjs/utils/cli/utils/template-generator/templates/zod-schema-generator.js.map +0 -1
- package/dist/cjs/utils/cli/utils/template-generators.js +0 -62
- package/dist/cjs/utils/cli/utils/template-generators.js.map +0 -1
- package/dist/cjs/utils/cli/utils/watermark-stamper.js +0 -26
- package/dist/cjs/utils/cli/utils/watermark-stamper.js.map +0 -1
- package/dist/cjs/utils/define-config.js +0 -60
- package/dist/cjs/utils/define-config.js.map +0 -1
- package/dist/cjs/utils/docs-links.js +0 -5
- package/dist/cjs/utils/docs-links.js.map +0 -1
- package/dist/cjs/utils/dotenv.helpers.js +0 -46
- package/dist/cjs/utils/dotenv.helpers.js.map +0 -1
- package/dist/cjs/utils/dynamic-loader.js +0 -22
- package/dist/cjs/utils/dynamic-loader.js.map +0 -1
- package/dist/cjs/utils/expand-env.js +0 -72
- package/dist/cjs/utils/expand-env.js.map +0 -1
- package/dist/cjs/utils/features/api.features.js +0 -216
- package/dist/cjs/utils/features/api.features.js.map +0 -1
- package/dist/cjs/utils/features/port-and-host-allocator.js +0 -129
- package/dist/cjs/utils/features/port-and-host-allocator.js.map +0 -1
- package/dist/cjs/utils/helpers/api.features.helpers.js +0 -347
- package/dist/cjs/utils/helpers/api.features.helpers.js.map +0 -1
- package/dist/cjs/utils/helpers/arkos-config.helpers.js +0 -106
- package/dist/cjs/utils/helpers/arkos-config.helpers.js.map +0 -1
- package/dist/cjs/utils/helpers/change-case.helpers.js +0 -177
- package/dist/cjs/utils/helpers/change-case.helpers.js.map +0 -1
- package/dist/cjs/utils/helpers/deepmerge.helper.js +0 -115
- package/dist/cjs/utils/helpers/deepmerge.helper.js.map +0 -1
- package/dist/cjs/utils/helpers/exit-error.js +0 -13
- package/dist/cjs/utils/helpers/exit-error.js.map +0 -1
- package/dist/cjs/utils/helpers/fs.helpers.js +0 -52
- package/dist/cjs/utils/helpers/fs.helpers.js.map +0 -1
- package/dist/cjs/utils/helpers/global.helpers.js +0 -106
- package/dist/cjs/utils/helpers/global.helpers.js.map +0 -1
- package/dist/cjs/utils/helpers/prisma.helpers.js +0 -56
- package/dist/cjs/utils/helpers/prisma.helpers.js.map +0 -1
- package/dist/cjs/utils/helpers/query-parser.helpers.js +0 -69
- package/dist/cjs/utils/helpers/query-parser.helpers.js.map +0 -1
- package/dist/cjs/utils/helpers/routers.helpers.js +0 -36
- package/dist/cjs/utils/helpers/routers.helpers.js.map +0 -1
- package/dist/cjs/utils/helpers/text.helpers.js +0 -28
- package/dist/cjs/utils/helpers/text.helpers.js.map +0 -1
- package/dist/cjs/utils/helpers/url-helpers.js +0 -14
- package/dist/cjs/utils/helpers/url-helpers.js.map +0 -1
- package/dist/cjs/utils/initialize-app.js +0 -80
- package/dist/cjs/utils/initialize-app.js.map +0 -1
- package/dist/cjs/utils/prisma/prisma-json-schema-generator.js +0 -366
- package/dist/cjs/utils/prisma/prisma-json-schema-generator.js.map +0 -1
- package/dist/cjs/utils/prisma/prisma-schema-parser.js +0 -380
- package/dist/cjs/utils/prisma/prisma-schema-parser.js.map +0 -1
- package/dist/cjs/utils/prisma/types.js +0 -3
- package/dist/cjs/utils/prisma/types.js.map +0 -1
- package/dist/cjs/utils/remove-dir.js +0 -14
- package/dist/cjs/utils/remove-dir.js.map +0 -1
- package/dist/cjs/utils/setup-app.js +0 -136
- package/dist/cjs/utils/setup-app.js.map +0 -1
- package/dist/cjs/utils/sheu.js +0 -131
- package/dist/cjs/utils/sheu.js.map +0 -1
- package/dist/cjs/utils/validate-dto.js +0 -19
- package/dist/cjs/utils/validate-dto.js.map +0 -1
- package/dist/cjs/utils/validate-schema.js +0 -75
- package/dist/cjs/utils/validate-schema.js.map +0 -1
- package/dist/esm/components/arkos-service-hook/index.js +0 -32
- package/dist/esm/components/arkos-service-hook/index.js.map +0 -1
- package/dist/esm/components/arkos-service-hook/reader.js +0 -24
- package/dist/esm/components/arkos-service-hook/reader.js.map +0 -1
- package/dist/esm/components/arkos-service-hook/types.js +0 -2
- package/dist/esm/components/arkos-service-hook/types.js.map +0 -1
- package/dist/esm/modules/base/utils/service-hooks-manager.js +0 -17
- package/dist/esm/modules/base/utils/service-hooks-manager.js.map +0 -1
- package/dist/types/components/arkos-service-hook/index.d.ts +0 -41
- package/dist/types/components/arkos-service-hook/reader.d.ts +0 -35
- package/dist/types/components/arkos-service-hook/types.d.ts +0 -219
- package/dist/types/modules/base/utils/service-hooks-manager.d.ts +0 -10
|
@@ -5,7 +5,10 @@ import classValidatorDtoGenerator from "./template-generator/templates/class-val
|
|
|
5
5
|
import zodSchemaGenerator from "./template-generator/templates/zod-schema-generator.js";
|
|
6
6
|
import prismaSchemaParser from "../../prisma/prisma-schema-parser.js";
|
|
7
7
|
import { generatePolicyTemplate } from "./template-generator/templates/policy-template.js";
|
|
8
|
+
import { getArkosConfig } from "../../../server.js";
|
|
8
9
|
export function generateTemplate(type, options) {
|
|
10
|
+
const { validation } = getArkosConfig();
|
|
11
|
+
const resolver = validation?.resolver ?? "zod";
|
|
9
12
|
switch (type) {
|
|
10
13
|
case "controller":
|
|
11
14
|
return generateControllerTemplate(options);
|
|
@@ -15,40 +18,40 @@ export function generateTemplate(type, options) {
|
|
|
15
18
|
return generateRouterTemplate(options);
|
|
16
19
|
case "policy":
|
|
17
20
|
return generatePolicyTemplate(options);
|
|
18
|
-
case "create-schema":
|
|
19
|
-
return zodSchemaGenerator.generateCreateSchema(options);
|
|
20
|
-
case "update-schema":
|
|
21
|
-
return zodSchemaGenerator.generateUpdateSchema(options);
|
|
22
|
-
case "schema":
|
|
23
|
-
return zodSchemaGenerator.generateBaseSchema(options);
|
|
24
|
-
case "query-schema":
|
|
25
|
-
return zodSchemaGenerator.generateQuerySchema(options);
|
|
26
21
|
case "create-dto":
|
|
27
|
-
return
|
|
22
|
+
return resolver === "class-validator"
|
|
23
|
+
? classValidatorDtoGenerator.generateCreateDto(options)
|
|
24
|
+
: zodSchemaGenerator.generateCreateSchema(options);
|
|
28
25
|
case "update-dto":
|
|
29
|
-
return
|
|
26
|
+
return resolver === "class-validator"
|
|
27
|
+
? classValidatorDtoGenerator.generateUpdateDto(options)
|
|
28
|
+
: zodSchemaGenerator.generateUpdateSchema(options);
|
|
30
29
|
case "dto":
|
|
31
|
-
return
|
|
30
|
+
return resolver === "class-validator"
|
|
31
|
+
? classValidatorDtoGenerator.generateBaseDto(options)
|
|
32
|
+
: zodSchemaGenerator.generateBaseSchema(options);
|
|
32
33
|
case "query-dto":
|
|
33
|
-
return
|
|
34
|
+
return resolver === "class-validator"
|
|
35
|
+
? classValidatorDtoGenerator.generateQueryDto(options)
|
|
36
|
+
: zodSchemaGenerator.generateQuerySchema(options);
|
|
34
37
|
case "prisma-model":
|
|
35
38
|
return prismaSchemaParser.generatePrismaModel(options);
|
|
36
|
-
case "login-schema":
|
|
37
|
-
return zodSchemaGenerator.generateLoginSchema(options);
|
|
38
|
-
case "signup-schema":
|
|
39
|
-
return zodSchemaGenerator.generateSignupSchema(options);
|
|
40
|
-
case "update-me-schema":
|
|
41
|
-
return zodSchemaGenerator.generateUpdateMeSchema(options);
|
|
42
|
-
case "update-password-schema":
|
|
43
|
-
return zodSchemaGenerator.generateUpdatePasswordSchema(options);
|
|
44
39
|
case "login-dto":
|
|
45
|
-
return
|
|
40
|
+
return resolver === "class-validator"
|
|
41
|
+
? classValidatorDtoGenerator.generateLoginDto(options)
|
|
42
|
+
: zodSchemaGenerator.generateLoginSchema(options);
|
|
46
43
|
case "signup-dto":
|
|
47
|
-
return
|
|
44
|
+
return resolver === "class-validator"
|
|
45
|
+
? classValidatorDtoGenerator.generateSignupDto(options)
|
|
46
|
+
: zodSchemaGenerator.generateSignupSchema(options);
|
|
48
47
|
case "update-me-dto":
|
|
49
|
-
return
|
|
48
|
+
return resolver === "class-validator"
|
|
49
|
+
? classValidatorDtoGenerator.generateUpdateMeDto(options)
|
|
50
|
+
: zodSchemaGenerator.generateUpdateMeSchema(options);
|
|
50
51
|
case "update-password-dto":
|
|
51
|
-
return
|
|
52
|
+
return resolver === "class-validator"
|
|
53
|
+
? classValidatorDtoGenerator.generateUpdatePasswordDto(options)
|
|
54
|
+
: zodSchemaGenerator.generateUpdatePasswordSchema(options);
|
|
52
55
|
default:
|
|
53
56
|
throw new Error(`Unknown template type: ${type}`);
|
|
54
57
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"template-generators.js","sourceRoot":"","sources":["../../../../../src/utils/cli/utils/template-generators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,6DAA6D,CAAC;AACzG,OAAO,EAAE,sBAAsB,EAAE,MAAM,gDAAgD,CAAC;AACxF,OAAO,EAAE,uBAAuB,EAAE,MAAM,iDAAiD,CAAC;AAC1F,OAAO,0BAA0B,MAAM,8DAA8D,CAAC;AACtG,OAAO,kBAAkB,MAAM,qDAAqD,CAAC;AACrF,OAAO,kBAAkB,MAAM,mCAAmC,CAAC;AACnE,OAAO,EAAE,sBAAsB,EAAE,MAAM,gDAAgD,CAAC;
|
|
1
|
+
{"version":3,"file":"template-generators.js","sourceRoot":"","sources":["../../../../../src/utils/cli/utils/template-generators.ts"],"names":[],"mappings":"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","sourcesContent":["import { generateControllerTemplate } from \"./template-generator/templates/generate-controller-template\";\nimport { generateRouterTemplate } from \"./template-generator/templates/router-template\";\nimport { generateServiceTemplate } from \"./template-generator/templates/service-template\";\nimport classValidatorDtoGenerator from \"./template-generator/templates/class-validator-dto-generator\";\nimport zodSchemaGenerator from \"./template-generator/templates/zod-schema-generator\";\nimport prismaSchemaParser from \"../../prisma/prisma-schema-parser\";\nimport { generatePolicyTemplate } from \"./template-generator/templates/policy-template\";\nimport { getArkosConfig } from \"../../../server\";\n\ninterface ModelName {\n pascal: string;\n camel: string;\n kebab: string;\n}\n\ninterface MiddlewareName {\n pascal: string;\n camel: string;\n kebab: string;\n}\n\nexport interface TemplateOptions {\n modelName: ModelName;\n middlewareName?: MiddlewareName;\n imports?: Record<string, string>;\n}\n\nexport function generateTemplate(\n type: string,\n options: TemplateOptions\n): string {\n const { validation } = getArkosConfig()\n const resolver = validation?.resolver ?? \"zod\"\n\n switch (type) {\n case \"controller\":\n return generateControllerTemplate(options);\n case \"service\":\n return generateServiceTemplate(options);\n case \"router\":\n return generateRouterTemplate(options);\n case \"policy\":\n return generatePolicyTemplate(options);\n\n case \"create-dto\":\n return resolver === \"class-validator\"\n ? classValidatorDtoGenerator.generateCreateDto(options)\n : zodSchemaGenerator.generateCreateSchema(options);\n case \"update-dto\":\n return resolver === \"class-validator\"\n ? classValidatorDtoGenerator.generateUpdateDto(options)\n : zodSchemaGenerator.generateUpdateSchema(options);\n case \"dto\":\n return resolver === \"class-validator\"\n ? classValidatorDtoGenerator.generateBaseDto(options)\n : zodSchemaGenerator.generateBaseSchema(options);\n case \"query-dto\":\n return resolver === \"class-validator\"\n ? classValidatorDtoGenerator.generateQueryDto(options)\n : zodSchemaGenerator.generateQuerySchema(options);\n\n case \"prisma-model\":\n return prismaSchemaParser.generatePrismaModel(options);\n\n case \"login-dto\":\n return resolver === \"class-validator\"\n ? classValidatorDtoGenerator.generateLoginDto(options)\n : zodSchemaGenerator.generateLoginSchema(options);\n case \"signup-dto\":\n return resolver === \"class-validator\"\n ? classValidatorDtoGenerator.generateSignupDto(options)\n : zodSchemaGenerator.generateSignupSchema(options);\n case \"update-me-dto\":\n return resolver === \"class-validator\"\n ? classValidatorDtoGenerator.generateUpdateMeDto(options)\n : zodSchemaGenerator.generateUpdateMeSchema(options);\n case \"update-password-dto\":\n return resolver === \"class-validator\"\n ? classValidatorDtoGenerator.generateUpdatePasswordDto(options)\n : zodSchemaGenerator.generateUpdatePasswordSchema(options);\n\n default:\n throw new Error(`Unknown template type: ${type}`);\n }\n}\n"]}
|
|
@@ -264,27 +264,28 @@ export class PrismaJsonSchemaGenerator {
|
|
|
264
264
|
continue;
|
|
265
265
|
if (this.isModelRelation(field.type) && field.isArray)
|
|
266
266
|
continue;
|
|
267
|
-
if (
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
267
|
+
if (field.type === "Profile")
|
|
268
|
+
if (this.isModelRelation(field.type) && !field.isArray) {
|
|
269
|
+
const referencedModel = prismaSchemaParser.models.find((m) => m.name === field.type);
|
|
270
|
+
if (referencedModel) {
|
|
271
|
+
const refField = field.foreignReferenceField || "id";
|
|
272
|
+
const refFieldDef = referencedModel.fields.find((f) => f.name === refField);
|
|
273
|
+
parameters.push({
|
|
274
|
+
name: field.name,
|
|
275
|
+
in: "query",
|
|
276
|
+
description: `Filter by ${field.name} (matches on ${refField})`,
|
|
277
|
+
schema: {
|
|
278
|
+
type: "object",
|
|
279
|
+
properties: {
|
|
280
|
+
[refField]: {
|
|
281
|
+
type: this.mapPrismaTypeToJsonSchema(refFieldDef?.type || "String"),
|
|
282
|
+
},
|
|
281
283
|
},
|
|
282
284
|
},
|
|
283
|
-
}
|
|
284
|
-
}
|
|
285
|
+
});
|
|
286
|
+
}
|
|
287
|
+
continue;
|
|
285
288
|
}
|
|
286
|
-
continue;
|
|
287
|
-
}
|
|
288
289
|
if (this.isEnum(field.type)) {
|
|
289
290
|
const enumDef = this.schema.enums.find((e) => e.name === field.type);
|
|
290
291
|
parameters.push({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prisma-json-schema-generator.js","sourceRoot":"","sources":["../../../../src/utils/prisma/prisma-json-schema-generator.ts"],"names":[],"mappings":"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","sourcesContent":["import prismaSchemaParser from \"./prisma-schema-parser\";\nimport {\n PrismaModel,\n PrismaField,\n JsonSchema,\n JsonSchemaProperty,\n} from \"./types\";\nimport { OperationByModule } from \"../../components/arkos-route-hook/reader\";\nimport { ArkosModuleType } from \"../../components/arkos-route-hook/types\";\n\nexport interface SchemaGenerationConfig<T extends ArkosModuleType> {\n modelName: T;\n schemasToGenerate?: OperationByModule<T>[];\n}\n\nexport interface GeneratedSchemas {\n [key: string]: JsonSchema;\n}\n\n/**\n * Enhanced JSON Schema generator that creates schemas based on Prisma models and query options\n */\nexport class PrismaJsonSchemaGenerator {\n schema = prismaSchemaParser.parse();\n private isCompositeType(typeName: string): boolean {\n return prismaSchemaParser.compositeTypes.some((t) => t.name === typeName);\n }\n generateCreateSchema(model: PrismaModel): JsonSchema {\n if (!model) return { type: \"object\" };\n const properties: { [key: string]: JsonSchemaProperty } = {};\n const required: string[] = [];\n const restrictedFields = [\"createdAt\", \"updatedAt\", \"deletedAt\", \"id\"];\n\n if (model.name.toLowerCase() === \"auth\")\n restrictedFields.push(\n \"roles\",\n \"role\",\n \"isActive\",\n \"isStaff\",\n \"isSuperUser\",\n \"passwordChangedAt\",\n \"deletedSelfAccountAt\",\n \"lastLoginAt\"\n );\n\n for (const field of model?.fields) {\n const isForeignKey = model.fields.some(\n (_field) => _field.foreignKeyField === field.name\n );\n if (field.isId || restrictedFields.includes(field.name) || isForeignKey)\n continue;\n\n if (this.isModelRelation(field.type)) {\n if (!field.isArray) {\n const referencedModel = prismaSchemaParser.models.find(\n (_model) => _model.name === field.type\n )!;\n\n properties[field.name] = {\n type: \"object\",\n properties: {\n [field.foreignReferenceField || \"id\"]: {\n type: this.mapPrismaTypeToJsonSchema(\n referencedModel?.fields.find(\n (_field) => _field.name === field.foreignReferenceField\n )?.type || \"String\"\n ),\n },\n },\n };\n\n if (!field.isOptional && field.defaultValue === undefined)\n required.push(field.name);\n }\n continue;\n }\n\n const property = this.convertFieldToJsonSchema(field);\n properties[field.name] = property;\n\n // Field is required if not optional, no default, and not array\n if (\n !field.isOptional &&\n field.defaultValue === undefined &&\n !field.isArray\n ) {\n required.push(field.name);\n }\n }\n\n return {\n type: \"object\",\n properties,\n required,\n };\n }\n\n generateUpdateSchema(model: PrismaModel): JsonSchema {\n if (!model) return { type: \"object\" };\n const properties: { [key: string]: JsonSchemaProperty } = {};\n const autoFillFields = [\"createdAt\", \"updatedAt\", \"deletedAt\", \"id\"];\n\n for (const field of model?.fields) {\n const isForeignKey = model.fields.some(\n (_field) => _field.foreignKeyField === field.name\n );\n if (field.isId || autoFillFields.includes(field.name) || isForeignKey)\n continue;\n\n if (this.isModelRelation(field.type)) {\n if (!field.isArray) {\n const referencedModel = prismaSchemaParser.models.find(\n (_model) => _model.name === field.type\n )!;\n\n properties[field.name] = {\n type: \"object\",\n properties: {\n [field.foreignReferenceField || \"id\"]: {\n type: this.mapPrismaTypeToJsonSchema(\n referencedModel?.fields.find(\n (_field) => _field.name === field.foreignReferenceField\n )?.type || \"String\"\n ),\n },\n },\n };\n }\n\n continue;\n }\n\n const property = this.convertFieldToJsonSchema(field);\n properties[field.name] = property;\n }\n\n return {\n type: \"object\",\n properties,\n required: [], // All fields are optional in update\n };\n }\n\n /**\n * Generate response schema (includes nested relations based on query options)\n */\n generateResponseSchema(\n model: PrismaModel,\n options: Record<string, any>\n ): JsonSchema {\n if (!model) return { type: \"object\" };\n const properties: { [key: string]: JsonSchemaProperty } = {};\n const required: string[] = [];\n\n // Get select and include options\n const selectFields = options?.select;\n const omittedFields = options?.omit;\n const includeRelations = options?.include;\n\n if (selectFields && includeRelations) {\n throw new Error(\n `Found both 'select' and 'include' in ${model.name} query options. Please use one of them.`\n );\n }\n\n for (const field of model?.fields) {\n // Skip password fields\n if (field.name === \"password\") continue;\n\n // Skip ommited fields\n if (omittedFields && omittedFields[field.name]) continue;\n\n // If select is specified, only include selected fields\n if (selectFields && !selectFields[field.name]) continue;\n\n // Handle relations\n if (this.isModelRelation(field.type)) {\n // Include relation if specified in include option\n if (\n includeRelations?.[field.name] ||\n selectFields?.[field.name] ||\n omittedFields?.[field.name] === false\n ) {\n const relationModel = this.schema.models.find(\n (m) => m.name === field.type\n );\n\n if (relationModel) {\n const relationSchema = this.generateNestedRelationSchema(\n relationModel,\n includeRelations?.[field.name] ||\n selectFields?.[field.name] ||\n omittedFields?.[field.name]\n );\n properties[field.name] = field.isArray\n ? { type: \"array\", items: relationSchema }\n : relationSchema;\n }\n }\n continue;\n }\n\n const property = this.convertFieldToJsonSchema(field);\n properties[field.name] = property;\n\n // Field is required if not optional (for response schemas, we include all by default)\n if (!field.isOptional) required.push(field.name);\n }\n\n return {\n type: \"object\",\n properties,\n required,\n };\n }\n\n /**\n * Generate nested relation schema\n */\n private generateNestedRelationSchema(\n model: PrismaModel,\n includeOptions: any\n ): JsonSchemaProperty {\n const properties: { [key: string]: JsonSchemaProperty } = {};\n const required: string[] = [];\n\n // Handle nested select\n const selectFields = includeOptions?.select;\n const nestedIncludes = includeOptions?.include;\n const ommittedFields = includeOptions?.omit;\n\n if (selectFields && nestedIncludes) {\n throw new Error(\n `Found both 'select' and 'include' in nested ${model.name} query options. Please use one of them.`\n );\n }\n\n for (const field of model?.fields) {\n // Skip password fields\n if (field.name.toLowerCase().includes(\"password\")) {\n continue;\n }\n\n if (selectFields && !selectFields[field.name]) {\n continue;\n }\n\n if (this.isModelRelation(field.type)) {\n if (\n nestedIncludes?.[field.name] ||\n selectFields?.[field.name] ||\n ommittedFields?.[field.name] === false\n ) {\n const relationModel = this.schema.models.find(\n (m) => m.name === field.type\n );\n if (relationModel) {\n const nestedSchema = this.generateNestedRelationSchema(\n relationModel,\n nestedIncludes?.[field.name] ||\n selectFields?.[field.name] ||\n ommittedFields?.[field.name]\n );\n properties[field.name] = field.isArray\n ? { type: \"array\", items: nestedSchema }\n : nestedSchema;\n }\n }\n continue;\n }\n\n const property = this.convertFieldToJsonSchema(field);\n properties[field.name] = property;\n\n if (!field.isOptional) {\n required.push(field.name);\n }\n }\n\n return {\n type: \"object\",\n properties,\n required,\n };\n }\n\n private isModelRelation(typeName: string): boolean {\n return this.schema.models.some((m) => m.name === typeName);\n }\n\n private convertFieldToJsonSchema(field: PrismaField): JsonSchemaProperty {\n // Reuse the existing method from the original generator\n const baseType = this.mapPrismaTypeToJsonSchema(field.type);\n const property: JsonSchemaProperty = { type: baseType };\n\n if (this.isCompositeType(field.type)) {\n const compositeType = prismaSchemaParser.compositeTypes.find(\n (t) => t.name === field.type\n )!;\n const nestedProperties: { [key: string]: JsonSchemaProperty } = {};\n for (const nestedField of compositeType?.fields) {\n nestedProperties[nestedField.name] =\n this.convertFieldToJsonSchema(nestedField);\n }\n if (field.isArray) {\n return {\n type: \"array\",\n items: { type: \"object\", properties: nestedProperties },\n };\n }\n return { type: \"object\", properties: nestedProperties };\n }\n\n if (field.isArray) {\n property.type = \"array\";\n property.items = { type: this.mapPrismaTypeToJsonSchema(field.type) };\n }\n\n if (field.defaultValue !== undefined) {\n property.default = field.defaultValue;\n }\n\n if (field.type === \"DateTime\") {\n property.format = \"date-time\";\n }\n\n if (this.isEnum(field.type)) {\n const enumDef = this.schema.enums.find((e) => e.name === field.type);\n if (enumDef) {\n property.enum = enumDef.values;\n }\n }\n\n return property;\n }\n\n private mapPrismaTypeToJsonSchema(prismaType: string): string {\n const typeMap: { [key: string]: string } = {\n String: \"string\",\n Int: \"number\",\n Float: \"number\",\n Boolean: \"boolean\",\n DateTime: \"string\",\n Json: \"object\",\n Bytes: \"string\",\n };\n\n if (typeMap[prismaType]) return typeMap[prismaType];\n\n if (this.isEnum(prismaType)) return \"string\";\n\n if (this.isModelRelation(prismaType)) return \"object\";\n\n if (this.isCompositeType(prismaType)) return \"object\";\n\n return \"string\";\n }\n\n private isEnum(typeName: string): boolean {\n return this.schema.enums.some((e) => e.name === typeName);\n }\n\n /**\n * Generate OpenAPI query filter parameters from scalar model fields.\n * Mirrors the logic from ZodSchemaGenerator.generateQuerySchema.\n */\n generateQueryFilterParameters(\n model: PrismaModel,\n options?: { modelFieldsOnly?: boolean }\n ) {\n const parameters: any[] = [];\n const restrictedFields = [\"id\", \"password\"];\n\n if (options?.modelFieldsOnly !== true)\n parameters.push(\n {\n name: \"page\",\n in: \"query\",\n description: \"Page number (starts from 1)\",\n schema: { type: \"integer\", minimum: 1 },\n },\n {\n name: \"limit\",\n in: \"query\",\n description: \"Number of items per page\",\n schema: { type: \"integer\", minimum: 1, maximum: 100 },\n },\n {\n name: \"sort\",\n in: \"query\",\n description: \"Sort field (prefix with '-' for descending order)\",\n schema: { type: \"string\" },\n },\n {\n name: \"fields\",\n in: \"query\",\n description: \"Comma-separated list of fields to include in response\",\n schema: { type: \"string\" },\n }\n );\n\n for (const field of model?.fields) {\n if (restrictedFields.includes(field.name)) continue;\n\n const isForeignKey = model.fields.some(\n (f) => f.foreignKeyField === field.name\n );\n if (isForeignKey) continue;\n\n if (this.isModelRelation(field.type) && field.isArray) continue;\n\n if (this.isModelRelation(field.type) && !field.isArray) {\n const referencedModel = prismaSchemaParser.models.find(\n (m) => m.name === field.type\n );\n if (referencedModel) {\n const refField = field.foreignReferenceField || \"id\";\n const refFieldDef = referencedModel.fields.find(\n (f) => f.name === refField\n );\n parameters.push({\n name: field.name,\n in: \"query\",\n description: `Filter by ${field.name} (matches on ${refField})`,\n schema: {\n type: \"object\",\n properties: {\n [refField]: {\n type: this.mapPrismaTypeToJsonSchema(\n refFieldDef?.type || \"String\"\n ),\n },\n },\n },\n });\n }\n continue;\n }\n\n if (this.isEnum(field.type)) {\n const enumDef = this.schema.enums.find((e) => e.name === field.type);\n parameters.push({\n name: field.name,\n in: \"query\",\n description: `Filter by ${field.name}`,\n schema: { type: \"string\", enum: enumDef?.values },\n });\n continue;\n }\n\n if (field.type === \"Boolean\") {\n parameters.push({\n name: field.name,\n in: \"query\",\n description: `Filter by ${field.name}`,\n schema: { type: \"boolean\" },\n });\n continue;\n }\n\n if (field.type === \"String\") {\n parameters.push({\n name: field.name,\n in: \"query\",\n description: `Filter by ${field.name}`,\n schema: {\n type: \"object\",\n properties: {\n icontains: { type: \"string\" },\n },\n },\n });\n continue;\n }\n\n if ([\"Int\", \"Float\", \"Decimal\", \"BigInt\"].includes(field.type)) {\n parameters.push({\n name: field.name,\n in: \"query\",\n description: `Filter by ${field.name}`,\n schema: {\n type: \"object\",\n properties: {\n equals: { type: \"number\" },\n gte: { type: \"number\" },\n lte: { type: \"number\" },\n },\n },\n });\n continue;\n }\n\n if (field.type === \"DateTime\") {\n parameters.push({\n name: field.name,\n in: \"query\",\n description: `Filter by ${field.name}`,\n schema: {\n type: \"object\",\n properties: {\n equals: { type: \"string\", format: \"date-time\" },\n gte: { type: \"string\", format: \"date-time\" },\n lte: { type: \"string\", format: \"date-time\" },\n },\n },\n });\n continue;\n }\n }\n\n return parameters || [];\n }\n}\n\nconst prismaJsonSchemaGenerator = new PrismaJsonSchemaGenerator();\n\nexport default prismaJsonSchemaGenerator;\n"]}
|
|
1
|
+
{"version":3,"file":"prisma-json-schema-generator.js","sourceRoot":"","sources":["../../../../src/utils/prisma/prisma-json-schema-generator.ts"],"names":[],"mappings":"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","sourcesContent":["import prismaSchemaParser from \"./prisma-schema-parser\";\nimport {\n PrismaModel,\n PrismaField,\n JsonSchema,\n JsonSchemaProperty,\n} from \"./types\";\nimport { OperationByModule } from \"../../components/arkos-route-hook/reader\";\nimport { ArkosModuleType } from \"../../components/arkos-route-hook/types\";\n\nexport interface SchemaGenerationConfig<T extends ArkosModuleType> {\n modelName: T;\n schemasToGenerate?: OperationByModule<T>[];\n}\n\nexport interface GeneratedSchemas {\n [key: string]: JsonSchema;\n}\n\n/**\n * Enhanced JSON Schema generator that creates schemas based on Prisma models and query options\n */\nexport class PrismaJsonSchemaGenerator {\n schema = prismaSchemaParser.parse();\n private isCompositeType(typeName: string): boolean {\n return prismaSchemaParser.compositeTypes.some((t) => t.name === typeName);\n }\n generateCreateSchema(model: PrismaModel): JsonSchema {\n if (!model) return { type: \"object\" };\n const properties: { [key: string]: JsonSchemaProperty } = {};\n const required: string[] = [];\n const restrictedFields = [\"createdAt\", \"updatedAt\", \"deletedAt\", \"id\"];\n\n if (model.name.toLowerCase() === \"auth\")\n restrictedFields.push(\n \"roles\",\n \"role\",\n \"isActive\",\n \"isStaff\",\n \"isSuperUser\",\n \"passwordChangedAt\",\n \"deletedSelfAccountAt\",\n \"lastLoginAt\"\n );\n\n for (const field of model?.fields) {\n const isForeignKey = model.fields.some(\n (_field) => _field.foreignKeyField === field.name\n );\n if (field.isId || restrictedFields.includes(field.name) || isForeignKey)\n continue;\n\n if (this.isModelRelation(field.type)) {\n if (!field.isArray) {\n const referencedModel = prismaSchemaParser.models.find(\n (_model) => _model.name === field.type\n )!;\n\n properties[field.name] = {\n type: \"object\",\n properties: {\n [field.foreignReferenceField || \"id\"]: {\n type: this.mapPrismaTypeToJsonSchema(\n referencedModel?.fields.find(\n (_field) => _field.name === field.foreignReferenceField\n )?.type || \"String\"\n ),\n },\n },\n };\n\n if (!field.isOptional && field.defaultValue === undefined)\n required.push(field.name);\n }\n continue;\n }\n\n const property = this.convertFieldToJsonSchema(field);\n properties[field.name] = property;\n\n // Field is required if not optional, no default, and not array\n if (\n !field.isOptional &&\n field.defaultValue === undefined &&\n !field.isArray\n ) {\n required.push(field.name);\n }\n }\n\n return {\n type: \"object\",\n properties,\n required,\n };\n }\n\n generateUpdateSchema(model: PrismaModel): JsonSchema {\n if (!model) return { type: \"object\" };\n const properties: { [key: string]: JsonSchemaProperty } = {};\n const autoFillFields = [\"createdAt\", \"updatedAt\", \"deletedAt\", \"id\"];\n\n for (const field of model?.fields) {\n const isForeignKey = model.fields.some(\n (_field) => _field.foreignKeyField === field.name\n );\n if (field.isId || autoFillFields.includes(field.name) || isForeignKey)\n continue;\n\n if (this.isModelRelation(field.type)) {\n if (!field.isArray) {\n const referencedModel = prismaSchemaParser.models.find(\n (_model) => _model.name === field.type\n )!;\n\n properties[field.name] = {\n type: \"object\",\n properties: {\n [field.foreignReferenceField || \"id\"]: {\n type: this.mapPrismaTypeToJsonSchema(\n referencedModel?.fields.find(\n (_field) => _field.name === field.foreignReferenceField\n )?.type || \"String\"\n ),\n },\n },\n };\n }\n\n continue;\n }\n\n const property = this.convertFieldToJsonSchema(field);\n properties[field.name] = property;\n }\n\n return {\n type: \"object\",\n properties,\n required: [], // All fields are optional in update\n };\n }\n\n /**\n * Generate response schema (includes nested relations based on query options)\n */\n generateResponseSchema(\n model: PrismaModel,\n options: Record<string, any>\n ): JsonSchema {\n if (!model) return { type: \"object\" };\n const properties: { [key: string]: JsonSchemaProperty } = {};\n const required: string[] = [];\n\n // Get select and include options\n const selectFields = options?.select;\n const omittedFields = options?.omit;\n const includeRelations = options?.include;\n\n if (selectFields && includeRelations) {\n throw new Error(\n `Found both 'select' and 'include' in ${model.name} query options. Please use one of them.`\n );\n }\n\n for (const field of model?.fields) {\n // Skip password fields\n if (field.name === \"password\") continue;\n\n // Skip ommited fields\n if (omittedFields && omittedFields[field.name]) continue;\n\n // If select is specified, only include selected fields\n if (selectFields && !selectFields[field.name]) continue;\n\n // Handle relations\n if (this.isModelRelation(field.type)) {\n // Include relation if specified in include option\n if (\n includeRelations?.[field.name] ||\n selectFields?.[field.name] ||\n omittedFields?.[field.name] === false\n ) {\n const relationModel = this.schema.models.find(\n (m) => m.name === field.type\n );\n\n if (relationModel) {\n const relationSchema = this.generateNestedRelationSchema(\n relationModel,\n includeRelations?.[field.name] ||\n selectFields?.[field.name] ||\n omittedFields?.[field.name]\n );\n properties[field.name] = field.isArray\n ? { type: \"array\", items: relationSchema }\n : relationSchema;\n }\n }\n continue;\n }\n\n const property = this.convertFieldToJsonSchema(field);\n properties[field.name] = property;\n\n // Field is required if not optional (for response schemas, we include all by default)\n if (!field.isOptional) required.push(field.name);\n }\n\n return {\n type: \"object\",\n properties,\n required,\n };\n }\n\n /**\n * Generate nested relation schema\n */\n private generateNestedRelationSchema(\n model: PrismaModel,\n includeOptions: any\n ): JsonSchemaProperty {\n const properties: { [key: string]: JsonSchemaProperty } = {};\n const required: string[] = [];\n\n // Handle nested select\n const selectFields = includeOptions?.select;\n const nestedIncludes = includeOptions?.include;\n const ommittedFields = includeOptions?.omit;\n\n if (selectFields && nestedIncludes) {\n throw new Error(\n `Found both 'select' and 'include' in nested ${model.name} query options. Please use one of them.`\n );\n }\n\n for (const field of model?.fields) {\n // Skip password fields\n if (field.name.toLowerCase().includes(\"password\")) {\n continue;\n }\n\n if (selectFields && !selectFields[field.name]) {\n continue;\n }\n\n if (this.isModelRelation(field.type)) {\n if (\n nestedIncludes?.[field.name] ||\n selectFields?.[field.name] ||\n ommittedFields?.[field.name] === false\n ) {\n const relationModel = this.schema.models.find(\n (m) => m.name === field.type\n );\n if (relationModel) {\n const nestedSchema = this.generateNestedRelationSchema(\n relationModel,\n nestedIncludes?.[field.name] ||\n selectFields?.[field.name] ||\n ommittedFields?.[field.name]\n );\n properties[field.name] = field.isArray\n ? { type: \"array\", items: nestedSchema }\n : nestedSchema;\n }\n }\n continue;\n }\n\n const property = this.convertFieldToJsonSchema(field);\n properties[field.name] = property;\n\n if (!field.isOptional) {\n required.push(field.name);\n }\n }\n\n return {\n type: \"object\",\n properties,\n required,\n };\n }\n\n private isModelRelation(typeName: string): boolean {\n return this.schema.models.some((m) => m.name === typeName);\n }\n\n private convertFieldToJsonSchema(field: PrismaField): JsonSchemaProperty {\n // Reuse the existing method from the original generator\n const baseType = this.mapPrismaTypeToJsonSchema(field.type);\n const property: JsonSchemaProperty = { type: baseType };\n\n if (this.isCompositeType(field.type)) {\n const compositeType = prismaSchemaParser.compositeTypes.find(\n (t) => t.name === field.type\n )!;\n const nestedProperties: { [key: string]: JsonSchemaProperty } = {};\n for (const nestedField of compositeType?.fields) {\n nestedProperties[nestedField.name] =\n this.convertFieldToJsonSchema(nestedField);\n }\n if (field.isArray) {\n return {\n type: \"array\",\n items: { type: \"object\", properties: nestedProperties },\n };\n }\n return { type: \"object\", properties: nestedProperties };\n }\n\n if (field.isArray) {\n property.type = \"array\";\n property.items = { type: this.mapPrismaTypeToJsonSchema(field.type) };\n }\n\n if (field.defaultValue !== undefined) {\n property.default = field.defaultValue;\n }\n\n if (field.type === \"DateTime\") {\n property.format = \"date-time\";\n }\n\n if (this.isEnum(field.type)) {\n const enumDef = this.schema.enums.find((e) => e.name === field.type);\n if (enumDef) {\n property.enum = enumDef.values;\n }\n }\n\n return property;\n }\n\n private mapPrismaTypeToJsonSchema(prismaType: string): string {\n const typeMap: { [key: string]: string } = {\n String: \"string\",\n Int: \"number\",\n Float: \"number\",\n Boolean: \"boolean\",\n DateTime: \"string\",\n Json: \"object\",\n Bytes: \"string\",\n };\n\n if (typeMap[prismaType]) return typeMap[prismaType];\n\n if (this.isEnum(prismaType)) return \"string\";\n\n if (this.isModelRelation(prismaType)) return \"object\";\n\n if (this.isCompositeType(prismaType)) return \"object\";\n\n return \"string\";\n }\n\n private isEnum(typeName: string): boolean {\n return this.schema.enums.some((e) => e.name === typeName);\n }\n\n /**\n * Generate OpenAPI query filter parameters from scalar model fields.\n * Mirrors the logic from ZodSchemaGenerator.generateQuerySchema.\n */\n generateQueryFilterParameters(\n model: PrismaModel,\n options?: { modelFieldsOnly?: boolean }\n ) {\n const parameters: any[] = [];\n const restrictedFields = [\"id\", \"password\"];\n\n if (options?.modelFieldsOnly !== true)\n parameters.push(\n {\n name: \"page\",\n in: \"query\",\n description: \"Page number (starts from 1)\",\n schema: { type: \"integer\", minimum: 1 },\n },\n {\n name: \"limit\",\n in: \"query\",\n description: \"Number of items per page\",\n schema: { type: \"integer\", minimum: 1, maximum: 100 },\n },\n {\n name: \"sort\",\n in: \"query\",\n description: \"Sort field (prefix with '-' for descending order)\",\n schema: { type: \"string\" },\n },\n {\n name: \"fields\",\n in: \"query\",\n description: \"Comma-separated list of fields to include in response\",\n schema: { type: \"string\" },\n }\n );\n\n for (const field of model?.fields) {\n if (restrictedFields.includes(field.name)) continue;\n\n const isForeignKey = model.fields.some(\n (f) => f.foreignKeyField === field.name\n );\n if (isForeignKey) continue;\n\n if (this.isModelRelation(field.type) && field.isArray) continue;\n\n if (field.type === \"Profile\")\n if (this.isModelRelation(field.type) && !field.isArray) {\n const referencedModel = prismaSchemaParser.models.find(\n (m) => m.name === field.type\n );\n if (referencedModel) {\n const refField = field.foreignReferenceField || \"id\";\n const refFieldDef = referencedModel.fields.find(\n (f) => f.name === refField\n );\n parameters.push({\n name: field.name,\n in: \"query\",\n description: `Filter by ${field.name} (matches on ${refField})`,\n schema: {\n type: \"object\",\n properties: {\n [refField]: {\n type: this.mapPrismaTypeToJsonSchema(\n refFieldDef?.type || \"String\"\n ),\n },\n },\n },\n });\n }\n continue;\n }\n\n if (this.isEnum(field.type)) {\n const enumDef = this.schema.enums.find((e) => e.name === field.type);\n parameters.push({\n name: field.name,\n in: \"query\",\n description: `Filter by ${field.name}`,\n schema: { type: \"string\", enum: enumDef?.values },\n });\n continue;\n }\n\n if (field.type === \"Boolean\") {\n parameters.push({\n name: field.name,\n in: \"query\",\n description: `Filter by ${field.name}`,\n schema: { type: \"boolean\" },\n });\n continue;\n }\n\n if (field.type === \"String\") {\n parameters.push({\n name: field.name,\n in: \"query\",\n description: `Filter by ${field.name}`,\n schema: {\n type: \"object\",\n properties: {\n icontains: { type: \"string\" },\n },\n },\n });\n continue;\n }\n\n if ([\"Int\", \"Float\", \"Decimal\", \"BigInt\"].includes(field.type)) {\n parameters.push({\n name: field.name,\n in: \"query\",\n description: `Filter by ${field.name}`,\n schema: {\n type: \"object\",\n properties: {\n equals: { type: \"number\" },\n gte: { type: \"number\" },\n lte: { type: \"number\" },\n },\n },\n });\n continue;\n }\n\n if (field.type === \"DateTime\") {\n parameters.push({\n name: field.name,\n in: \"query\",\n description: `Filter by ${field.name}`,\n schema: {\n type: \"object\",\n properties: {\n equals: { type: \"string\", format: \"date-time\" },\n gte: { type: \"string\", format: \"date-time\" },\n lte: { type: \"string\", format: \"date-time\" },\n },\n },\n });\n continue;\n }\n }\n\n return parameters || [];\n }\n}\n\nconst prismaJsonSchemaGenerator = new PrismaJsonSchemaGenerator();\n\nexport default prismaJsonSchemaGenerator;\n"]}
|
package/dist/types/app.d.ts
CHANGED
|
@@ -3,6 +3,9 @@ import express from "express";
|
|
|
3
3
|
import { Arkos } from "./types/arkos";
|
|
4
4
|
import { IncomingMessage, Server, ServerResponse } from "http";
|
|
5
5
|
export declare const app: express.Express;
|
|
6
|
+
export declare const docsLink = "https://www.arkosjs.com/docs/core-concepts/routing/setup#setting-up-your-app";
|
|
7
|
+
type AppState = "idle" | "building" | "built" | "listening";
|
|
8
|
+
export declare let state: AppState;
|
|
6
9
|
/**
|
|
7
10
|
* Creates and configures an Arkos application instance.
|
|
8
11
|
*
|
|
@@ -43,3 +46,4 @@ export declare const app: express.Express;
|
|
|
43
46
|
*/
|
|
44
47
|
export declare function arkos(): Arkos;
|
|
45
48
|
export declare function getAppServer(): Server<typeof IncomingMessage, typeof ServerResponse>;
|
|
49
|
+
export {};
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { ArkosPrismaService } from "../../exports/services";
|
|
1
2
|
import { ArkosModuleType, ArkosRouteHookReturn } from "./types";
|
|
2
3
|
/**
|
|
3
4
|
* Creates an interceptor for a built-in Arkos module or a generated model route.
|
|
@@ -22,4 +23,9 @@ import { ArkosModuleType, ArkosRouteHookReturn } from "./types";
|
|
|
22
23
|
* ```
|
|
23
24
|
* @see {@link https://www.arkosjs.com/docs/core-concepts/components/route-hooks}
|
|
24
25
|
*/
|
|
25
|
-
export declare function ArkosRouteHook<T extends ArkosModuleType>(moduleName: T
|
|
26
|
+
export declare function ArkosRouteHook<T extends ArkosModuleType>(moduleName: T, configs?: {
|
|
27
|
+
/**
|
|
28
|
+
* ArkosPrismaService instace for such model
|
|
29
|
+
*/
|
|
30
|
+
service?: ArkosPrismaService<T>;
|
|
31
|
+
}): ArkosRouteHookReturn<T>;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ArkosModuleType, ArkosRouteHookHooks, ArkosRouteHookMethodConfig, ArkosRouteHookInstance, ArkosAuthRouteHookInstance, ArkosFileUploadRouteHookInstance } from "./types";
|
|
2
2
|
import { ArkosRequestHandler, ArkosRouteConfig } from "../../exports";
|
|
3
|
-
type PrismaOperations = keyof Omit<ArkosRouteHookInstance<any>, "__type" | "moduleName" | "
|
|
3
|
+
type PrismaOperations = keyof Omit<ArkosRouteHookInstance<any>, "__type" | "moduleName" | "_configs">;
|
|
4
4
|
export type OperationByModule<TModule extends ArkosModuleType> = TModule extends "file-upload" ? keyof Omit<ArkosFileUploadRouteHookInstance, "__type" | "moduleName" | "service"> : TModule extends "auth" ? keyof Omit<ArkosAuthRouteHookInstance, "__type" | "moduleName" | "service"> : PrismaOperations;
|
|
5
5
|
/**
|
|
6
6
|
* Reader for `ArkosRouteHook` instances.
|
|
@@ -16,7 +16,7 @@ type PrismaQueryFor<TModel extends string, TOp extends string> = TModel extends
|
|
|
16
16
|
/**
|
|
17
17
|
* Full config for an interceptor method — inherits all ArkosRouteConfig options
|
|
18
18
|
* (validation, auth, rate limiting, etc.) minus `path`, plus lifecycle hooks,
|
|
19
|
-
* plus `
|
|
19
|
+
* plus `prismaArgs` typed to the specific model and operation's Prisma args.
|
|
20
20
|
*/
|
|
21
21
|
export type ArkosRouteHookMethodConfig<TModel extends string = string, TOp extends string = string> = Omit<ArkosRouteConfig, "path"> & ArkosRouteHookHooks & {
|
|
22
22
|
/**
|
|
@@ -24,10 +24,6 @@ export type ArkosRouteHookMethodConfig<TModel extends string = string, TOp exten
|
|
|
24
24
|
* Typed against the model's actual Prisma args for this operation.
|
|
25
25
|
*/
|
|
26
26
|
prismaArgs?: PrismaQueryFor<TModel, TOp>;
|
|
27
|
-
/**
|
|
28
|
-
* ArkosPrismaService instace for such model
|
|
29
|
-
*/
|
|
30
|
-
service?: ArkosPrismaService<TModel>;
|
|
31
27
|
};
|
|
32
28
|
/**
|
|
33
29
|
* Union of all valid module name types for ArkosRouteHook.
|
|
@@ -42,7 +38,9 @@ export type ArkosModuleType = "auth" | "file-upload" | Models;
|
|
|
42
38
|
export interface ArkosRouteHookInstance<TModel extends Models> {
|
|
43
39
|
readonly __type: "ArkosRouteHook";
|
|
44
40
|
readonly moduleName: TModel;
|
|
45
|
-
readonly
|
|
41
|
+
readonly _configs: {
|
|
42
|
+
readonly service?: ArkosPrismaService;
|
|
43
|
+
};
|
|
46
44
|
createOne(config: ArkosRouteHookMethodConfig<TModel, "CreateArgs">): this;
|
|
47
45
|
findOne(config: ArkosRouteHookMethodConfig<TModel, "FindFirstArgs">): this;
|
|
48
46
|
findMany(config: ArkosRouteHookMethodConfig<TModel, "FindManyArgs">): this;
|
|
@@ -9,12 +9,11 @@ import { ArkosConfig } from "../types/new-arkos-config";
|
|
|
9
9
|
import { loadEnvironmentVariables } from "../utils/dotenv.helpers";
|
|
10
10
|
import { arkos } from "../app";
|
|
11
11
|
import { ArkosRouteHook } from "../components/arkos-route-hook";
|
|
12
|
-
import { ArkosServiceHook } from "../components/arkos-service-hook";
|
|
13
12
|
import { ArkosRouteHookInstance } from "../components/arkos-route-hook/types";
|
|
14
13
|
import { ArkosPolicy } from "../components/arkos-policy";
|
|
15
14
|
import { IArkosPolicy } from "../components/arkos-policy/types";
|
|
16
15
|
import type { ArkosLoadable } from "../types/arkos";
|
|
17
16
|
import { ArkosFile } from "../types/upload";
|
|
18
17
|
import { isProduction } from "../utils/helpers/arkos-config.helpers";
|
|
19
|
-
export { ArkosLoadable, ArkosRequest, ArkosResponse, ArkosNextFunction, ArkosRequestHandler, IArkosRouter, BaseController, ArkosConfig, RouterConfig, RouteHook, loadEnvironmentVariables, getArkosConfig, ArkosRouteHook,
|
|
18
|
+
export { ArkosLoadable, ArkosRequest, ArkosResponse, ArkosNextFunction, ArkosRequestHandler, IArkosRouter, BaseController, ArkosConfig, RouterConfig, RouteHook, loadEnvironmentVariables, getArkosConfig, ArkosRouteHook, ArkosRouter, ArkosRouteConfig, ArkosRouteHookInstance, ArkosPolicy, IArkosPolicy, ArkosFile, isProduction, };
|
|
20
19
|
export = arkos;
|
|
@@ -4,7 +4,7 @@ import authService, { AuthService } from "../../modules/auth/auth.service";
|
|
|
4
4
|
import emailService, { EmailService } from "../../modules/email/email.service";
|
|
5
5
|
import { ArkosPrismaService } from "../../modules/base/base.service";
|
|
6
6
|
import authActionService from "../../modules/auth/utils/services/auth-action.service";
|
|
7
|
-
import { ServiceHookContext
|
|
7
|
+
import { ServiceHookContext } from "../../modules/base/types/base.service.types";
|
|
8
8
|
/**
|
|
9
9
|
* Authentication service.
|
|
10
10
|
*/
|
|
@@ -12,7 +12,7 @@ export { authService, AuthService, authActionService };
|
|
|
12
12
|
/**
|
|
13
13
|
* Base service.
|
|
14
14
|
*/
|
|
15
|
-
export { ArkosPrismaService, ServiceHookContext,
|
|
15
|
+
export { ArkosPrismaService, ServiceHookContext, };
|
|
16
16
|
/**
|
|
17
17
|
* Email service.
|
|
18
18
|
*/
|
|
@@ -1,13 +1,7 @@
|
|
|
1
1
|
import { ModelGroupRelationFields } from "./utils/helpers/base.service.helpers";
|
|
2
2
|
import { PrismaClient } from "../../generated";
|
|
3
3
|
import { CountFilters, CreateData, CreateManyData, CreateManyOptions, CreateOptions, DeleteManyFilters, DeleteOneFilters, FindManyFilters, FindManyOptions, FindOneFilters, FindOneOptions, GetPayload, Models, UpdateManyData, UpdateManyFilters, UpdateManyOptions, UpdateOneData, UpdateOneFilters, UpdateOneOptions } from "./types/base.service.types";
|
|
4
|
-
import { ServiceHookContext } from "
|
|
5
|
-
export interface ServiceOperationHooks {
|
|
6
|
-
beforeOperation?: (params: any) => void | Promise<void>;
|
|
7
|
-
afterOperation?: (result: any, params: any) => void | Promise<void>;
|
|
8
|
-
beforePrisma?: (prismaArgs: any, params: any) => any | Promise<any>;
|
|
9
|
-
afterPrisma?: (result: any, params: any) => any | Promise<any>;
|
|
10
|
-
}
|
|
4
|
+
import { ServiceHookContext } from "./types/base.service.types";
|
|
11
5
|
/**
|
|
12
6
|
* Base service class for handling CRUD operations on a specific model.
|
|
13
7
|
* This class provides standard implementation of data operations that can be extended
|
|
@@ -35,7 +29,6 @@ export declare class ArkosPrismaService<TModelName extends keyof Models = keyof
|
|
|
35
29
|
get prisma(): PrismaClient;
|
|
36
30
|
private executeOperation;
|
|
37
31
|
private executeTransactionOperation;
|
|
38
|
-
private buildHookParams;
|
|
39
32
|
private handlePasswordHashing;
|
|
40
33
|
private processRelationFieldsInBody;
|
|
41
34
|
private buildPrismaArgs;
|
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
import { ExtractPrismaData, ExtractPrismaFilters, ExtractPrismaQueryOptions, PrismaModels } from "../../../generated";
|
|
2
|
+
import { User } from "../../../types";
|
|
2
3
|
export type Models = PrismaModels<any>;
|
|
4
|
+
export interface ServiceHookContext {
|
|
5
|
+
/**
|
|
6
|
+
* The authenticated user making the request.
|
|
7
|
+
*/
|
|
8
|
+
user?: User;
|
|
9
|
+
/**
|
|
10
|
+
* The access token from the request for authorization.
|
|
11
|
+
*/
|
|
12
|
+
accessToken?: string;
|
|
13
|
+
}
|
|
3
14
|
export type Delegate<TModelName extends keyof Models> = Models[TModelName]["Delegate"];
|
|
4
15
|
export type CreateData<TModelName extends keyof Models> = ExtractPrismaData<Models[TModelName]["CreateArgs"]>;
|
|
5
16
|
export type CreateOptions<TModelName extends keyof Models> = ExtractPrismaQueryOptions<Models[TModelName]["CreateArgs"], "data">;
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { Express } from "express";
|
|
2
2
|
import { IncomingMessage, Server, ServerResponse } from "http";
|
|
3
3
|
import { ArkosAuthRouteHookInstance, ArkosFileUploadRouteHookInstance, ArkosRouteHookInstance } from "../components/arkos-route-hook/types";
|
|
4
|
-
import { ArkosServiceHookInstance } from "../components/arkos-service-hook/types";
|
|
5
4
|
import { IArkosRouter } from "../exports";
|
|
6
5
|
type ArkosRouterMethods = "get" | "post" | "put" | "patch" | "delete" | "options" | "head" | "all" | "use" | "trace" | "route" | "use" | "load";
|
|
7
6
|
/**
|
|
@@ -75,5 +74,5 @@ export interface Arkos extends Omit<Express, "listen" | ArkosRouterMethods>, Pic
|
|
|
75
74
|
* Union of all valid types that can be passed to `app.load()`.
|
|
76
75
|
* Grows as new Arkos-specific loadable types are introduced.
|
|
77
76
|
*/
|
|
78
|
-
export type ArkosLoadable = ArkosRouteHookInstance<any> | ArkosAuthRouteHookInstance | ArkosFileUploadRouteHookInstance
|
|
77
|
+
export type ArkosLoadable = ArkosRouteHookInstance<any> | ArkosAuthRouteHookInstance | ArkosFileUploadRouteHookInstance;
|
|
79
78
|
export {};
|
|
@@ -10,26 +10,27 @@ export type GenerateOptions = {
|
|
|
10
10
|
shouldPrintError?: boolean;
|
|
11
11
|
isBulk?: boolean;
|
|
12
12
|
};
|
|
13
|
+
export interface GenerateConfig {
|
|
14
|
+
templateName: string;
|
|
15
|
+
fileSuffix?: string;
|
|
16
|
+
customValidation?: (modelName: string) => void;
|
|
17
|
+
customImports?: (names: any) => any;
|
|
18
|
+
customPath?: string;
|
|
19
|
+
prefix?: string;
|
|
20
|
+
allowedModules: string[] | "*";
|
|
21
|
+
ext?: string;
|
|
22
|
+
attachModuleName?: boolean;
|
|
23
|
+
}
|
|
13
24
|
export declare const generateCommand: {
|
|
14
25
|
controller: (options: GenerateOptions) => Promise<void>;
|
|
15
26
|
service: (options: GenerateOptions) => Promise<void>;
|
|
16
27
|
router: (options: GenerateOptions) => Promise<void>;
|
|
17
28
|
policy: (options: GenerateOptions) => Promise<void>;
|
|
18
|
-
routeHook: (options: GenerateOptions) => Promise<void>;
|
|
19
|
-
serviceHook: (options: GenerateOptions) => Promise<void>;
|
|
20
|
-
createSchema: (options: GenerateOptions) => Promise<void>;
|
|
21
|
-
updateSchema: (options: GenerateOptions) => Promise<void>;
|
|
22
|
-
baseSchema: (options: GenerateOptions) => Promise<void>;
|
|
23
|
-
querySchema: (options: GenerateOptions) => Promise<void>;
|
|
24
29
|
createDto: (options: GenerateOptions) => Promise<void>;
|
|
25
30
|
updateDto: (options: GenerateOptions) => Promise<void>;
|
|
26
31
|
baseDto: (options: GenerateOptions) => Promise<void>;
|
|
27
32
|
queryDto: (options: GenerateOptions) => Promise<void>;
|
|
28
33
|
prismaModel: (options: GenerateOptions) => Promise<void>;
|
|
29
|
-
loginSchema: (options: GenerateOptions) => Promise<void>;
|
|
30
|
-
signupSchema: (options: GenerateOptions) => Promise<void>;
|
|
31
|
-
updateMeSchema: (options: GenerateOptions) => Promise<void>;
|
|
32
|
-
updatePasswordSchema: (options: GenerateOptions) => Promise<void>;
|
|
33
34
|
loginDto: (options: GenerateOptions) => Promise<void>;
|
|
34
35
|
signupDto: (options: GenerateOptions) => Promise<void>;
|
|
35
36
|
updateMeDto: (options: GenerateOptions) => Promise<void>;
|
package/package.json
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "arkos",
|
|
3
|
-
"version": "2.0.0-next.
|
|
3
|
+
"version": "2.0.0-next.18",
|
|
4
4
|
"description": "The Express & Prisma RESTful Framework",
|
|
5
|
-
"main": "dist/
|
|
5
|
+
"main": "dist/esm/exports/index.js",
|
|
6
6
|
"module": "dist/esm/exports/index.js",
|
|
7
7
|
"types": "dist/types/exports/index.d.ts",
|
|
8
8
|
"exports": {
|
|
9
9
|
".": {
|
|
10
10
|
"types": "./dist/types/exports/index.d.ts",
|
|
11
11
|
"import": "./dist/esm/exports/index.js",
|
|
12
|
-
"require": "./dist/
|
|
12
|
+
"require": "./dist/esm/exports/index.js"
|
|
13
13
|
},
|
|
14
14
|
"./types": {
|
|
15
15
|
"types": "./dist/types/exports/index.d.ts",
|
|
@@ -19,61 +19,61 @@
|
|
|
19
19
|
"./prisma": {
|
|
20
20
|
"types": "./dist/types/exports/prisma/index.d.ts",
|
|
21
21
|
"import": "./dist/esm/exports/prisma/index.js",
|
|
22
|
-
"require": "./dist/
|
|
22
|
+
"require": "./dist/esm/exports/prisma/index.js"
|
|
23
23
|
},
|
|
24
24
|
"./auth": {
|
|
25
25
|
"types": "./dist/types/exports/auth/index.d.ts",
|
|
26
26
|
"import": "./dist/esm/exports/auth/index.js",
|
|
27
|
-
"require": "./dist/
|
|
27
|
+
"require": "./dist/esm/exports/auth/index.js"
|
|
28
28
|
},
|
|
29
29
|
"./services": {
|
|
30
30
|
"types": "./dist/types/exports/services/index.d.ts",
|
|
31
31
|
"import": "./dist/esm/exports/services/index.js",
|
|
32
|
-
"require": "./dist/
|
|
32
|
+
"require": "./dist/esm/exports/services/index.js"
|
|
33
33
|
},
|
|
34
34
|
"./controllers": {
|
|
35
35
|
"types": "./dist/types/exports/controllers/index.d.ts",
|
|
36
36
|
"import": "./dist/esm/exports/controllers/index.js",
|
|
37
|
-
"require": "./dist/
|
|
37
|
+
"require": "./dist/esm/exports/controllers/index.js"
|
|
38
38
|
},
|
|
39
39
|
"./middlewares": {
|
|
40
40
|
"types": "./dist/types/exports/middlewares/index.d.ts",
|
|
41
41
|
"import": "./dist/esm/exports/middlewares/index.js",
|
|
42
|
-
"require": "./dist/
|
|
42
|
+
"require": "./dist/esm/exports/middlewares/index.js"
|
|
43
43
|
},
|
|
44
44
|
"./validation": {
|
|
45
45
|
"types": "./dist/types/exports/validation/index.d.ts",
|
|
46
46
|
"import": "./dist/esm/exports/validation/index.js",
|
|
47
|
-
"require": "./dist/
|
|
47
|
+
"require": "./dist/esm/exports/validation/index.js"
|
|
48
48
|
},
|
|
49
49
|
"./error-handler": {
|
|
50
50
|
"types": "./dist/types/exports/error-handler/index.d.ts",
|
|
51
51
|
"import": "./dist/esm/exports/error-handler/index.js",
|
|
52
|
-
"require": "./dist/
|
|
52
|
+
"require": "./dist/esm/exports/error-handler/index.js"
|
|
53
53
|
},
|
|
54
54
|
"./websockets": {
|
|
55
55
|
"types": "./dist/types/exports/websockets.d.ts",
|
|
56
56
|
"import": "./dist/esm/exports/websockets.js",
|
|
57
|
-
"require": "./dist/
|
|
57
|
+
"require": "./dist/esm/exports/websockets.js"
|
|
58
58
|
},
|
|
59
59
|
"./utils": {
|
|
60
60
|
"types": "./dist/types/exports/utils/index.d.ts",
|
|
61
61
|
"import": "./dist/esm/exports/utils/index.js",
|
|
62
|
-
"require": "./dist/
|
|
62
|
+
"require": "./dist/esm/exports/utils/index.js"
|
|
63
63
|
},
|
|
64
64
|
"./config": {
|
|
65
65
|
"types": "./dist/types/exports/config.d.ts",
|
|
66
66
|
"import": "./dist/esm/exports/config.js",
|
|
67
|
-
"require": "./dist/
|
|
67
|
+
"require": "./dist/esm/exports/config.js"
|
|
68
68
|
},
|
|
69
69
|
"./cli": {
|
|
70
70
|
"import": "./dist/esm/utils/cli/index.js",
|
|
71
|
-
"require": "./dist/
|
|
71
|
+
"require": "./dist/esm/utils/cli/index.js"
|
|
72
72
|
},
|
|
73
73
|
"./*": {
|
|
74
74
|
"types": "./dist/types/exports/*.d.ts",
|
|
75
75
|
"import": "./dist/esm/exports/*.js",
|
|
76
|
-
"require": "./dist/
|
|
76
|
+
"require": "./dist/esm/exports/*.js"
|
|
77
77
|
}
|
|
78
78
|
},
|
|
79
79
|
"bin": {
|
|
@@ -116,10 +116,8 @@
|
|
|
116
116
|
"scripts": {
|
|
117
117
|
"build:esm": "tsc -p tsconfig.esm.json && npx tsx scripts/fix-esm-imports.ts",
|
|
118
118
|
"build:types": "tsc -p tsconfig.types.json",
|
|
119
|
-
"build
|
|
120
|
-
"build": "pnpm clean dist && pnpm run build:cjs && pnpm run build:esm && pnpm run build:types && tsx scripts/post-build-scripts.ts",
|
|
119
|
+
"build": "pnpm clean dist && pnpm run build:esm && pnpm run build:types && tsx scripts/post-build-scripts.ts",
|
|
121
120
|
"buildTsup": "tsup && tsx scripts/post-build-scripts.ts",
|
|
122
|
-
"minifyOld": "esbuild dist/cjs/**/*.js --minify --outdir=dist --allow-overwrite --log-limit=0 --define:process.env.NODE_ENV=process.env.NODE_ENV",
|
|
123
121
|
"minify": "esbuild $(find dist -type f -name '*.js') --minify --outdir=dist --allow-overwrite --log-limit=0 --define:process.env.NODE_ENV=process.env.NODE_ENV",
|
|
124
122
|
"clean": "tsx scripts/remove-dir-cli.ts",
|
|
125
123
|
"dev": "tsx --watch",
|