arkos 2.0.0-next.2 → 2.0.0-next.20
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 +146 -145
- package/cli.js +11 -13
- package/dist/esm/app.js +17 -16
- package/dist/esm/app.js.map +1 -1
- package/dist/esm/components/arkos-gateway/arkos-gateway.js +338 -0
- package/dist/esm/components/arkos-gateway/arkos-gateway.js.map +1 -0
- package/dist/esm/components/arkos-gateway/socket-extensions.js +168 -0
- package/dist/esm/components/arkos-gateway/socket-extensions.js.map +1 -0
- package/dist/esm/components/arkos-gateway/types.js +3 -0
- package/dist/esm/components/arkos-gateway/types.js.map +1 -0
- package/dist/esm/components/arkos-gateway/utils/helpers.js +105 -0
- package/dist/esm/components/arkos-gateway/utils/helpers.js.map +1 -0
- package/dist/esm/components/arkos-gateway/utils/memory-gateway-store.js +45 -0
- package/dist/esm/components/arkos-gateway/utils/memory-gateway-store.js.map +1 -0
- package/dist/esm/components/arkos-gateway/utils/multi-tier-arkos-gateway-store.js +40 -0
- package/dist/esm/components/arkos-gateway/utils/multi-tier-arkos-gateway-store.js.map +1 -0
- package/dist/esm/components/arkos-gateway/utils/rate-limiter.js +13 -0
- package/dist/esm/components/arkos-gateway/utils/rate-limiter.js.map +1 -0
- package/dist/esm/components/arkos-loadable-registry/index.js +1 -3
- package/dist/esm/components/arkos-loadable-registry/index.js.map +1 -1
- package/dist/esm/components/arkos-policy/index.js +3 -1
- package/dist/esm/components/arkos-policy/index.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/error-handler/index.js +1 -0
- package/dist/esm/exports/error-handler/index.js.map +1 -1
- package/dist/esm/exports/index.js +3 -3
- package/dist/esm/exports/index.js.map +1 -1
- package/dist/esm/exports/middlewares/index.js +1 -1
- package/dist/esm/exports/middlewares/index.js.map +1 -1
- package/dist/esm/exports/services/index.js +2 -2
- package/dist/esm/exports/services/index.js.map +1 -1
- package/dist/esm/exports/websockets.js +5 -0
- package/dist/esm/exports/websockets.js.map +1 -0
- package/dist/esm/generated.js.map +1 -1
- package/dist/esm/modules/auth/auth.controller.js +214 -222
- package/dist/esm/modules/auth/auth.controller.js.map +1 -1
- package/dist/esm/modules/auth/auth.router.js +26 -9
- package/dist/esm/modules/auth/auth.router.js.map +1 -1
- package/dist/esm/modules/auth/auth.service.js +90 -102
- package/dist/esm/modules/auth/auth.service.js.map +1 -1
- package/dist/esm/modules/auth/utils/auth-error-objects.js +2 -2
- package/dist/esm/modules/auth/utils/auth-error-objects.js.map +1 -1
- package/dist/esm/modules/auth/utils/auth-hooks-manager.js +148 -0
- package/dist/esm/modules/auth/utils/auth-hooks-manager.js.map +1 -0
- package/dist/esm/modules/auth/utils/auth-openapi-generator.js +367 -0
- package/dist/esm/modules/auth/utils/auth-openapi-generator.js.map +1 -0
- package/dist/esm/modules/auth/utils/auth-prisma-json-schema-generator.js +97 -0
- package/dist/esm/modules/auth/utils/auth-prisma-json-schema-generator.js.map +1 -0
- package/dist/esm/modules/auth/utils/docs-links.js +6 -0
- package/dist/esm/modules/auth/utils/docs-links.js.map +1 -0
- package/dist/esm/modules/auth/utils/services/auth-action.service.js +20 -16
- package/dist/esm/modules/auth/utils/services/auth-action.service.js.map +1 -1
- package/dist/esm/modules/base/base.controller.js +182 -162
- package/dist/esm/modules/base/base.controller.js.map +1 -1
- package/dist/esm/modules/base/base.middlewares.js +31 -48
- package/dist/esm/modules/base/base.middlewares.js.map +1 -1
- package/dist/esm/modules/base/base.router.js +23 -9
- package/dist/esm/modules/base/base.router.js.map +1 -1
- package/dist/esm/modules/base/base.service.js +33 -138
- 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/base/utils/error-prettifier.js +26 -30
- package/dist/esm/modules/base/utils/error-prettifier.js.map +1 -1
- package/dist/esm/modules/base/utils/helpers/base.service.helpers.js +26 -5
- package/dist/esm/modules/base/utils/helpers/base.service.helpers.js.map +1 -1
- package/dist/esm/modules/base/utils/model-openapi-generator.js +438 -0
- package/dist/esm/modules/base/utils/model-openapi-generator.js.map +1 -0
- package/dist/esm/modules/email/email.service.js +17 -10
- package/dist/esm/modules/email/email.service.js.map +1 -1
- package/dist/esm/modules/error-handler/error-handler.controller.js +24 -113
- package/dist/esm/modules/error-handler/error-handler.controller.js.map +1 -1
- package/dist/esm/modules/error-handler/utils/app-error.js +5 -2
- package/dist/esm/modules/error-handler/utils/app-error.js.map +1 -1
- package/dist/esm/modules/error-handler/utils/catch-async.js.map +1 -1
- package/dist/esm/modules/error-handler/utils/error-handler.helpers.js +9 -103
- package/dist/esm/modules/error-handler/utils/error-handler.helpers.js.map +1 -1
- package/dist/esm/modules/error-handler/utils/errors.js +127 -0
- package/dist/esm/modules/error-handler/utils/errors.js.map +1 -0
- package/dist/esm/modules/error-handler/utils/get-handled-error.js +68 -0
- package/dist/esm/modules/error-handler/utils/get-handled-error.js.map +1 -0
- package/dist/esm/modules/error-handler/utils/multer-error-handler.js +34 -0
- package/dist/esm/modules/error-handler/utils/multer-error-handler.js.map +1 -0
- package/dist/esm/modules/file-upload/file-upload.controller.js +208 -214
- package/dist/esm/modules/file-upload/file-upload.controller.js.map +1 -1
- package/dist/esm/modules/file-upload/file-upload.router.js +35 -12
- package/dist/esm/modules/file-upload/file-upload.router.js.map +1 -1
- package/dist/esm/modules/file-upload/file-upload.service.js +13 -8
- package/dist/esm/modules/file-upload/file-upload.service.js.map +1 -1
- package/dist/esm/modules/file-upload/utils/file-upload-json-schema-generator.js +346 -0
- package/dist/esm/modules/file-upload/utils/file-upload-json-schema-generator.js.map +1 -0
- package/dist/esm/modules/swagger/swagger.router.js +39 -22
- package/dist/esm/modules/swagger/swagger.router.js.map +1 -1
- package/dist/esm/modules/swagger/utils/get-open-api-login-html.js +305 -0
- package/dist/esm/modules/swagger/utils/get-open-api-login-html.js.map +1 -0
- package/dist/esm/modules/swagger/utils/helpers/class-validator-to-json-schema.js.map +1 -1
- package/dist/esm/modules/swagger/utils/helpers/get-swagger-default-configs.js +6 -7
- package/dist/esm/modules/swagger/utils/helpers/get-swagger-default-configs.js.map +1 -1
- package/dist/esm/modules/swagger/utils/helpers/openapi-schema-converter.js +6 -3
- package/dist/esm/modules/swagger/utils/helpers/openapi-schema-converter.js.map +1 -1
- package/dist/esm/server.js +1 -1
- package/dist/esm/server.js.map +1 -1
- package/dist/esm/types/arkos-config/utils.js +2 -0
- package/dist/esm/types/arkos-config/utils.js.map +1 -0
- package/dist/esm/types/arkos-prisma-input.js.map +1 -1
- package/dist/esm/types/arkos.js.map +1 -1
- package/dist/esm/types/auth.js.map +1 -1
- package/dist/esm/types/index.js.map +1 -1
- package/dist/esm/types/new-arkos-config.js.map +1 -1
- package/dist/esm/types/router-config.js.map +1 -1
- package/dist/esm/types/upload.js +2 -0
- package/dist/esm/types/upload.js.map +1 -0
- package/dist/esm/types/validation/validation-manager.js +49 -0
- package/dist/esm/types/validation/validation-manager.js.map +1 -0
- package/dist/esm/types/validation/validator.js +2 -0
- package/dist/esm/types/validation/validator.js.map +1 -0
- package/dist/esm/utils/arkos-router/arkos-router-openapi-manager.js +68 -34
- package/dist/esm/utils/arkos-router/arkos-router-openapi-manager.js.map +1 -1
- package/dist/esm/utils/arkos-router/index.js +37 -130
- package/dist/esm/utils/arkos-router/index.js.map +1 -1
- package/dist/esm/utils/arkos-router/route-config-registry.js +2 -3
- package/dist/esm/utils/arkos-router/route-config-registry.js.map +1 -1
- package/dist/esm/utils/arkos-router/types/index.js.map +1 -1
- package/dist/esm/utils/arkos-router/types/openapi-config.js.map +1 -1
- package/dist/esm/utils/arkos-router/types/upload-config.js.map +1 -1
- package/dist/esm/utils/arkos-router/utils/helpers/apply-arkos-router-proxy.js +188 -0
- package/dist/esm/utils/arkos-router/utils/helpers/apply-arkos-router-proxy.js.map +1 -0
- package/dist/esm/utils/arkos-router/utils/helpers/index.js +88 -29
- package/dist/esm/utils/arkos-router/utils/helpers/index.js.map +1 -1
- package/dist/esm/utils/arkos-router/utils/helpers/upload-manager.js +364 -89
- package/dist/esm/utils/arkos-router/utils/helpers/upload-manager.js.map +1 -1
- package/dist/esm/utils/bundler.js +6 -6
- package/dist/esm/utils/bundler.js.map +1 -1
- package/dist/esm/utils/cli/build.js +16 -7
- package/dist/esm/utils/cli/build.js.map +1 -1
- package/dist/esm/utils/cli/dev.js +18 -28
- package/dist/esm/utils/cli/dev.js.map +1 -1
- package/dist/esm/utils/cli/export-auth-action.js +5 -4
- package/dist/esm/utils/cli/export-auth-action.js.map +1 -1
- package/dist/esm/utils/cli/generate.js +70 -56
- package/dist/esm/utils/cli/generate.js.map +1 -1
- package/dist/esm/utils/cli/index.js +54 -50
- package/dist/esm/utils/cli/index.js.map +1 -1
- package/dist/esm/utils/cli/prisma-generate.js +8 -37
- package/dist/esm/utils/cli/prisma-generate.js.map +1 -1
- package/dist/esm/utils/cli/start.js +25 -14
- package/dist/esm/utils/cli/start.js.map +1 -1
- package/dist/esm/utils/cli/utils/cli.helpers.js +1 -1
- package/dist/esm/utils/cli/utils/runtime-cli-commander.js +7 -4
- package/dist/esm/utils/cli/utils/runtime-cli-commander.js.map +1 -1
- package/dist/esm/utils/cli/utils/smart-fs-watcher.js +3 -0
- package/dist/esm/utils/cli/utils/smart-fs-watcher.js.map +1 -1
- package/dist/esm/utils/cli/utils/template-generator/templates/class-validator-dto-generator.js +307 -11
- package/dist/esm/utils/cli/utils/template-generator/templates/class-validator-dto-generator.js.map +1 -1
- package/dist/esm/utils/cli/utils/template-generator/templates/generate-controller-template.js +16 -7
- 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-multiple-components.js +117 -65
- 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/policy-template.js +6 -8
- package/dist/esm/utils/cli/utils/template-generator/templates/policy-template.js.map +1 -1
- package/dist/esm/utils/cli/utils/template-generator/templates/router-template.js +13 -2
- 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-generator/templates/zod-schema-generator.js +213 -19
- package/dist/esm/utils/cli/utils/template-generator/templates/zod-schema-generator.js.map +1 -1
- package/dist/esm/utils/cli/utils/template-generators.js +31 -18
- package/dist/esm/utils/cli/utils/template-generators.js.map +1 -1
- package/dist/esm/utils/define-config.js +14 -0
- package/dist/esm/utils/define-config.js.map +1 -1
- package/dist/esm/utils/docs-links.js +2 -0
- package/dist/esm/utils/docs-links.js.map +1 -0
- package/dist/esm/utils/dotenv.helpers.js +0 -6
- package/dist/esm/utils/dotenv.helpers.js.map +1 -1
- package/dist/esm/utils/dynamic-loader.js +2 -1
- package/dist/esm/utils/dynamic-loader.js.map +1 -1
- package/dist/esm/utils/features/api.features.js +46 -27
- package/dist/esm/utils/features/api.features.js.map +1 -1
- package/dist/esm/utils/features/port-and-host-allocator.js +4 -3
- package/dist/esm/utils/features/port-and-host-allocator.js.map +1 -1
- package/dist/esm/utils/helpers/api.features.helpers.js +20 -0
- package/dist/esm/utils/helpers/api.features.helpers.js.map +1 -1
- package/dist/esm/utils/helpers/arkos-config.helpers.js +20 -2
- package/dist/esm/utils/helpers/arkos-config.helpers.js.map +1 -1
- package/dist/esm/utils/helpers/exit-error.js +1 -0
- package/dist/esm/utils/helpers/exit-error.js.map +1 -1
- package/dist/esm/utils/helpers/fs.helpers.js +26 -33
- package/dist/esm/utils/helpers/fs.helpers.js.map +1 -1
- package/dist/esm/utils/helpers/global.helpers.js +1 -1
- package/dist/esm/utils/helpers/global.helpers.js.map +1 -1
- package/dist/esm/utils/helpers/prisma.helpers.js +10 -7
- package/dist/esm/utils/helpers/prisma.helpers.js.map +1 -1
- package/dist/esm/utils/helpers/query-parser.helpers.js +7 -22
- package/dist/esm/utils/helpers/query-parser.helpers.js.map +1 -1
- package/dist/esm/utils/helpers/routers.helpers.js +2 -2
- package/dist/esm/utils/helpers/routers.helpers.js.map +1 -1
- package/dist/esm/utils/helpers/url-helpers.js +11 -0
- package/dist/esm/utils/helpers/url-helpers.js.map +1 -0
- package/dist/esm/utils/initialize-app.js +41 -17
- package/dist/esm/utils/initialize-app.js.map +1 -1
- package/dist/esm/utils/prisma/prisma-json-schema-generator.js +154 -226
- package/dist/esm/utils/prisma/prisma-json-schema-generator.js.map +1 -1
- package/dist/esm/utils/prisma/prisma-schema-parser.js +37 -11
- package/dist/esm/utils/prisma/prisma-schema-parser.js.map +1 -1
- package/dist/esm/utils/prisma/types.js.map +1 -1
- package/dist/esm/utils/remove-dir.js +1 -1
- package/dist/esm/utils/remove-dir.js.map +1 -1
- package/dist/esm/utils/setup-app.js +59 -42
- package/dist/esm/utils/setup-app.js.map +1 -1
- package/dist/esm/utils/validate-schema.js +23 -21
- package/dist/esm/utils/validate-schema.js.map +1 -1
- package/dist/types/app.d.ts +10 -7
- package/dist/types/components/arkos-gateway/arkos-gateway.d.ts +121 -0
- package/dist/types/components/arkos-gateway/socket-extensions.d.ts +79 -0
- package/dist/types/components/arkos-gateway/types.d.ts +364 -0
- package/dist/types/components/arkos-gateway/utils/helpers.d.ts +9 -0
- package/dist/types/components/arkos-gateway/utils/memory-gateway-store.d.ts +14 -0
- package/dist/types/components/arkos-gateway/utils/multi-tier-arkos-gateway-store.d.ts +20 -0
- package/dist/types/components/arkos-gateway/utils/rate-limiter.d.ts +11 -0
- package/dist/types/components/arkos-route-hook/index.d.ts +11 -5
- package/dist/types/components/arkos-route-hook/reader.d.ts +4 -7
- package/dist/types/components/arkos-route-hook/types.d.ts +9 -5
- package/dist/types/exports/error-handler/index.d.ts +1 -0
- package/dist/types/exports/index.d.ts +5 -5
- package/dist/types/exports/middlewares/index.d.ts +1 -1
- package/dist/types/exports/services/index.d.ts +3 -3
- package/dist/types/exports/websockets.d.ts +5 -0
- package/dist/types/modules/auth/auth.service.d.ts +80 -51
- package/dist/types/modules/auth/utils/auth-hooks-manager.d.ts +63 -0
- package/dist/types/modules/auth/utils/auth-openapi-generator.d.ts +9 -0
- package/dist/types/modules/auth/utils/auth-prisma-json-schema-generator.d.ts +13 -0
- package/dist/types/modules/auth/utils/docs-links.d.ts +3 -0
- package/dist/types/modules/auth/utils/services/auth-action.service.d.ts +2 -2
- package/dist/types/modules/base/base.controller.d.ts +4 -4
- package/dist/types/modules/base/base.middlewares.d.ts +1 -7
- package/dist/types/modules/base/base.service.d.ts +8 -17
- package/dist/types/modules/base/types/base.service.types.d.ts +11 -0
- package/dist/types/modules/base/utils/helpers/base.service.helpers.d.ts +1 -1
- package/dist/types/modules/base/utils/model-openapi-generator.d.ts +12 -0
- package/dist/types/modules/email/email.service.d.ts +1 -1
- package/dist/types/modules/error-handler/utils/app-error.d.ts +0 -2
- package/dist/types/modules/error-handler/utils/catch-async.d.ts +2 -2
- package/dist/types/modules/error-handler/utils/error-handler.helpers.d.ts +1 -27
- package/dist/types/modules/error-handler/utils/errors.d.ts +176 -0
- package/dist/types/modules/error-handler/utils/get-handled-error.d.ts +1 -0
- package/dist/types/modules/error-handler/utils/multer-error-handler.d.ts +7 -0
- package/dist/types/modules/file-upload/file-upload.controller.d.ts +7 -2
- package/dist/types/modules/file-upload/utils/file-upload-json-schema-generator.d.ts +12 -0
- package/dist/types/modules/swagger/swagger.router.d.ts +1 -2
- package/dist/types/modules/swagger/utils/get-open-api-login-html.d.ts +1 -0
- package/dist/types/modules/swagger/utils/helpers/get-swagger-default-configs.d.ts +48 -3
- package/dist/types/modules/swagger/utils/helpers/openapi-schema-converter.d.ts +6 -1
- package/dist/types/types/arkos-config/utils.d.ts +68 -0
- package/dist/types/types/arkos-prisma-input.d.ts +4 -3
- package/dist/types/types/arkos.d.ts +5 -15
- package/dist/types/types/auth.d.ts +4 -4
- package/dist/types/types/index.d.ts +10 -58
- package/dist/types/types/new-arkos-config.d.ts +326 -36
- package/dist/types/types/router-config.d.ts +0 -63
- package/dist/types/types/upload.d.ts +10 -0
- package/dist/types/types/validation/validation-manager.d.ts +27 -0
- package/dist/types/types/validation/validator.d.ts +2 -0
- package/dist/types/utils/arkos-router/arkos-router-openapi-manager.d.ts +14 -1
- package/dist/types/utils/arkos-router/index.d.ts +83 -8
- package/dist/types/utils/arkos-router/types/index.d.ts +74 -23
- package/dist/types/utils/arkos-router/types/openapi-config.d.ts +3 -2
- package/dist/types/utils/arkos-router/types/upload-config.d.ts +65 -8
- package/dist/types/utils/arkos-router/utils/helpers/apply-arkos-router-proxy.d.ts +6 -0
- package/dist/types/utils/arkos-router/utils/helpers/index.d.ts +4 -6
- package/dist/types/utils/arkos-router/utils/helpers/upload-manager.d.ts +1 -36
- package/dist/types/utils/bundler.d.ts +1 -1
- package/dist/types/utils/cli/build.d.ts +1 -1
- package/dist/types/utils/cli/generate.d.ts +15 -6
- package/dist/types/utils/cli/start.d.ts +3 -1
- package/dist/types/utils/cli/utils/template-generator/templates/class-validator-dto-generator.d.ts +11 -0
- package/dist/types/utils/cli/utils/template-generator/templates/zod-schema-generator.d.ts +4 -0
- package/dist/types/utils/define-config.d.ts +1 -1
- package/dist/types/utils/docs-links.d.ts +1 -0
- package/dist/types/utils/dynamic-loader.d.ts +2 -2
- package/dist/types/utils/features/api.features.d.ts +1 -2
- package/dist/types/utils/helpers/arkos-config.helpers.d.ts +7 -0
- package/dist/types/utils/helpers/fs.helpers.d.ts +1 -16
- package/dist/types/utils/helpers/global.helpers.d.ts +1 -0
- package/dist/types/utils/helpers/prisma.helpers.d.ts +1 -1
- package/dist/types/utils/helpers/query-parser.helpers.d.ts +1 -1
- package/dist/types/utils/helpers/url-helpers.d.ts +1 -0
- package/dist/types/utils/initialize-app.d.ts +1 -0
- package/dist/types/utils/prisma/prisma-json-schema-generator.d.ts +12 -30
- package/dist/types/utils/prisma/prisma-schema-parser.d.ts +4 -0
- package/dist/types/utils/prisma/types.d.ts +3 -2
- package/package.json +117 -84
- package/dist/cjs/app.js +0 -79
- package/dist/cjs/app.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 -36
- 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 -11
- package/dist/cjs/exports/error-handler/index.js.map +0 -1
- package/dist/cjs/exports/index.js +0 -23
- 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/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 -113
- package/dist/cjs/modules/auth/auth.router.js.map +0 -1
- package/dist/cjs/modules/auth/auth.service.js +0 -277
- 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/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 -150
- package/dist/cjs/modules/auth/utils/services/auth-action.service.js.map +0 -1
- package/dist/cjs/modules/base/base.controller.js +0 -275
- package/dist/cjs/modules/base/base.controller.js.map +0 -1
- package/dist/cjs/modules/base/base.middlewares.js +0 -231
- package/dist/cjs/modules/base/base.middlewares.js.map +0 -1
- package/dist/cjs/modules/base/base.router.js +0 -112
- package/dist/cjs/modules/base/base.router.js.map +0 -1
- package/dist/cjs/modules/base/base.service.js +0 -432
- 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.router.helpers.js +0 -13
- package/dist/cjs/modules/base/utils/helpers/base.router.helpers.js.map +0 -1
- package/dist/cjs/modules/base/utils/helpers/base.service.helpers.js +0 -222
- package/dist/cjs/modules/base/utils/helpers/base.service.helpers.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 -106
- package/dist/cjs/modules/email/email.service.js.map +0 -1
- package/dist/cjs/modules/error-handler/error-handler.controller.js +0 -192
- package/dist/cjs/modules/error-handler/error-handler.controller.js.map +0 -1
- package/dist/cjs/modules/error-handler/utils/app-error.js +0 -28
- 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 -218
- package/dist/cjs/modules/error-handler/utils/error-handler.helpers.js.map +0 -1
- package/dist/cjs/modules/file-upload/file-upload.controller.js +0 -256
- package/dist/cjs/modules/file-upload/file-upload.controller.js.map +0 -1
- package/dist/cjs/modules/file-upload/file-upload.router.js +0 -80
- 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/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 -65
- package/dist/cjs/modules/swagger/swagger.router.js.map +0 -1
- package/dist/cjs/modules/swagger/utils/built-in-route-path-object-manager.js +0 -7
- package/dist/cjs/modules/swagger/utils/built-in-route-path-object-manager.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-authentication-json-schema-paths.js +0 -473
- package/dist/cjs/modules/swagger/utils/helpers/get-authentication-json-schema-paths.js.map +0 -1
- package/dist/cjs/modules/swagger/utils/helpers/get-file-upload-json-schema-paths.js +0 -491
- package/dist/cjs/modules/swagger/utils/helpers/get-file-upload-json-schema-paths.js.map +0 -1
- package/dist/cjs/modules/swagger/utils/helpers/get-swagger-default-configs.js +0 -73
- package/dist/cjs/modules/swagger/utils/helpers/get-swagger-default-configs.js.map +0 -1
- package/dist/cjs/modules/swagger/utils/helpers/get-system-json-schema-paths.js +0 -37
- package/dist/cjs/modules/swagger/utils/helpers/get-system-json-schema-paths.js.map +0 -1
- package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-class-validator-json-schemas.js +0 -61
- package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-class-validator-json-schemas.js.map +0 -1
- package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-prisma-json-schemas.js +0 -31
- package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-prisma-json-schemas.js.map +0 -1
- package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-system-json-schemas.js +0 -49
- package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-system-json-schemas.js.map +0 -1
- package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schemas.js +0 -39
- package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schemas.js.map +0 -1
- package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes-paths.js +0 -468
- package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes-paths.js.map +0 -1
- package/dist/cjs/modules/swagger/utils/helpers/missing-json-schemas-generator.js +0 -260
- package/dist/cjs/modules/swagger/utils/helpers/missing-json-schemas-generator.js.map +0 -1
- package/dist/cjs/modules/swagger/utils/helpers/openapi-schema-converter.js +0 -331
- package/dist/cjs/modules/swagger/utils/helpers/openapi-schema-converter.js.map +0 -1
- package/dist/cjs/modules/swagger/utils/helpers/swagger.router.helpers.js +0 -109
- package/dist/cjs/modules/swagger/utils/helpers/swagger.router.helpers.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-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/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 -126
- package/dist/cjs/utils/arkos-router/arkos-router-openapi-manager.js.map +0 -1
- package/dist/cjs/utils/arkos-router/index.js +0 -253
- 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/index.js +0 -163
- 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 -283
- 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 -199
- package/dist/cjs/utils/cli/build.js.map +0 -1
- package/dist/cjs/utils/cli/dev.js +0 -128
- package/dist/cjs/utils/cli/dev.js.map +0 -1
- package/dist/cjs/utils/cli/export-auth-action.js +0 -79
- package/dist/cjs/utils/cli/export-auth-action.js.map +0 -1
- package/dist/cjs/utils/cli/generate.js +0 -229
- package/dist/cjs/utils/cli/generate.js.map +0 -1
- package/dist/cjs/utils/cli/index.js +0 -191
- 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 -72
- 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 -115
- 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 -550
- 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 -52
- 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 -139
- 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 -53
- package/dist/cjs/utils/cli/utils/template-generator/templates/policy-template.js.map +0 -1
- package/dist/cjs/utils/cli/utils/template-generator/templates/route-hook.template.js +0 -39
- package/dist/cjs/utils/cli/utils/template-generator/templates/route-hook.template.js.map +0 -1
- package/dist/cjs/utils/cli/utils/template-generator/templates/router-template.js +0 -19
- 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-hook.template.js +0 -32
- package/dist/cjs/utils/cli/utils/template-generator/templates/service-hook.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 -351
- 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 -52
- 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 -46
- package/dist/cjs/utils/define-config.js.map +0 -1
- package/dist/cjs/utils/dotenv.helpers.js +0 -52
- 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 -201
- 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 -327
- package/dist/cjs/utils/helpers/api.features.helpers.js.map +0 -1
- package/dist/cjs/utils/helpers/arkos-config.helpers.js +0 -86
- 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 -12
- package/dist/cjs/utils/helpers/exit-error.js.map +0 -1
- package/dist/cjs/utils/helpers/fs.helpers.js +0 -60
- package/dist/cjs/utils/helpers/fs.helpers.js.map +0 -1
- package/dist/cjs/utils/helpers/global.helpers.js +0 -105
- package/dist/cjs/utils/helpers/global.helpers.js.map +0 -1
- package/dist/cjs/utils/helpers/prisma.helpers.js +0 -53
- 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/initialize-app.js +0 -55
- package/dist/cjs/utils/initialize-app.js.map +0 -1
- package/dist/cjs/utils/prisma/prisma-json-schema-generator.js +0 -437
- package/dist/cjs/utils/prisma/prisma-json-schema-generator.js.map +0 -1
- package/dist/cjs/utils/prisma/prisma-schema-parser.js +0 -360
- 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 -119
- 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-loadable-translator/index.js +0 -138
- package/dist/esm/components/arkos-loadable-translator/index.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/helpers/base.router.helpers.js +0 -10
- package/dist/esm/modules/base/utils/helpers/base.router.helpers.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/esm/modules/swagger/utils/built-in-route-path-object-manager.js +0 -5
- package/dist/esm/modules/swagger/utils/built-in-route-path-object-manager.js.map +0 -1
- package/dist/esm/modules/swagger/utils/helpers/get-authentication-json-schema-paths.js +0 -469
- package/dist/esm/modules/swagger/utils/helpers/get-authentication-json-schema-paths.js.map +0 -1
- package/dist/esm/modules/swagger/utils/helpers/get-file-upload-json-schema-paths.js +0 -485
- package/dist/esm/modules/swagger/utils/helpers/get-file-upload-json-schema-paths.js.map +0 -1
- package/dist/esm/modules/swagger/utils/helpers/get-system-json-schema-paths.js +0 -34
- package/dist/esm/modules/swagger/utils/helpers/get-system-json-schema-paths.js.map +0 -1
- package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-class-validator-json-schemas.js +0 -55
- package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-class-validator-json-schemas.js.map +0 -1
- package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-prisma-json-schemas.js +0 -25
- package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-prisma-json-schemas.js.map +0 -1
- package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-system-json-schemas.js +0 -46
- package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-system-json-schemas.js.map +0 -1
- package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schemas.js +0 -33
- package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schemas.js.map +0 -1
- package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes-paths.js +0 -462
- package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes-paths.js.map +0 -1
- package/dist/esm/modules/swagger/utils/helpers/missing-json-schemas-generator.js +0 -255
- package/dist/esm/modules/swagger/utils/helpers/missing-json-schemas-generator.js.map +0 -1
- package/dist/esm/modules/swagger/utils/helpers/swagger.router.helpers.js +0 -98
- package/dist/esm/modules/swagger/utils/helpers/swagger.router.helpers.js.map +0 -1
- package/dist/esm/utils/cli/utils/template-generator/templates/route-hook.template.js +0 -36
- package/dist/esm/utils/cli/utils/template-generator/templates/route-hook.template.js.map +0 -1
- package/dist/esm/utils/cli/utils/template-generator/templates/service-hook.template.js +0 -29
- package/dist/esm/utils/cli/utils/template-generator/templates/service-hook.template.js.map +0 -1
- package/dist/types/components/arkos-loadable-translator/index.d.ts +0 -53
- 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 -240
- package/dist/types/modules/base/utils/helpers/base.router.helpers.d.ts +0 -3
- package/dist/types/modules/base/utils/service-hooks-manager.d.ts +0 -10
- package/dist/types/modules/swagger/utils/built-in-route-path-object-manager.d.ts +0 -4
- package/dist/types/modules/swagger/utils/helpers/get-authentication-json-schema-paths.d.ts +0 -5
- package/dist/types/modules/swagger/utils/helpers/get-file-upload-json-schema-paths.d.ts +0 -3
- package/dist/types/modules/swagger/utils/helpers/get-system-json-schema-paths.d.ts +0 -2
- package/dist/types/modules/swagger/utils/helpers/json-schema-generators/generate-class-validator-json-schemas.d.ts +0 -1
- package/dist/types/modules/swagger/utils/helpers/json-schema-generators/generate-prisma-json-schemas.d.ts +0 -1
- package/dist/types/modules/swagger/utils/helpers/json-schema-generators/generate-system-json-schemas.d.ts +0 -4
- package/dist/types/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schemas.d.ts +0 -1
- package/dist/types/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes-paths.d.ts +0 -2
- package/dist/types/modules/swagger/utils/helpers/missing-json-schemas-generator.d.ts +0 -76
- package/dist/types/modules/swagger/utils/helpers/swagger.router.helpers.d.ts +0 -19
- package/dist/types/utils/cli/utils/template-generator/templates/route-hook.template.d.ts +0 -2
- package/dist/types/utils/cli/utils/template-generator/templates/service-hook.template.d.ts +0 -2
|
@@ -1,163 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.bundler = exports.Bundler = void 0;
|
|
7
|
-
const fs_1 = __importDefault(require("fs"));
|
|
8
|
-
const path_1 = __importDefault(require("path"));
|
|
9
|
-
class Bundler {
|
|
10
|
-
compileAliases(resolvedPaths) {
|
|
11
|
-
return Object.entries(resolvedPaths.paths).map(([pattern, targets]) => {
|
|
12
|
-
const isWildcard = pattern.endsWith("/*");
|
|
13
|
-
return {
|
|
14
|
-
prefix: isWildcard ? pattern.slice(0, -2) : pattern,
|
|
15
|
-
isWildcard,
|
|
16
|
-
targets,
|
|
17
|
-
};
|
|
18
|
-
});
|
|
19
|
-
}
|
|
20
|
-
loadConfig(rootDir, configPath) {
|
|
21
|
-
const resolved = configPath
|
|
22
|
-
? path_1.default.resolve(configPath)
|
|
23
|
-
: this.findConfig(rootDir);
|
|
24
|
-
if (!resolved || !fs_1.default.existsSync(resolved)) {
|
|
25
|
-
return { baseUrl: rootDir, paths: {} };
|
|
26
|
-
}
|
|
27
|
-
return this.parseConfig(resolved, rootDir);
|
|
28
|
-
}
|
|
29
|
-
findConfig(dir) {
|
|
30
|
-
for (const name of ["tsconfig.json", "jsconfig.json"]) {
|
|
31
|
-
const candidate = path_1.default.join(dir, name);
|
|
32
|
-
if (fs_1.default.existsSync(candidate))
|
|
33
|
-
return candidate;
|
|
34
|
-
}
|
|
35
|
-
return null;
|
|
36
|
-
}
|
|
37
|
-
parseConfig(configPath, rootDir) {
|
|
38
|
-
const configDir = path_1.default.dirname(configPath);
|
|
39
|
-
const raw = this.readJsonWithComments(configPath);
|
|
40
|
-
let base = { baseUrl: rootDir, paths: {} };
|
|
41
|
-
if (raw.extends) {
|
|
42
|
-
const isPackage = !raw.extends.startsWith(".");
|
|
43
|
-
const parentPath = isPackage
|
|
44
|
-
? this.resolveNodeModulesConfig(raw.extends, rootDir)
|
|
45
|
-
: path_1.default.resolve(configDir, raw.extends);
|
|
46
|
-
if (parentPath && fs_1.default.existsSync(parentPath)) {
|
|
47
|
-
base = this.parseConfig(parentPath, rootDir);
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
const co = raw.compilerOptions || {};
|
|
51
|
-
const baseUrl = co.baseUrl
|
|
52
|
-
? path_1.default.resolve(configDir, co.baseUrl)
|
|
53
|
-
: base.baseUrl;
|
|
54
|
-
return {
|
|
55
|
-
baseUrl,
|
|
56
|
-
paths: { ...base.paths, ...(co.paths || {}) },
|
|
57
|
-
};
|
|
58
|
-
}
|
|
59
|
-
resolveNodeModulesConfig(extendsValue, rootDir) {
|
|
60
|
-
try {
|
|
61
|
-
return require.resolve(extendsValue, { paths: [rootDir] });
|
|
62
|
-
}
|
|
63
|
-
catch {
|
|
64
|
-
return null;
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
readJsonWithComments(filePath) {
|
|
68
|
-
const raw = fs_1.default.readFileSync(filePath, "utf8");
|
|
69
|
-
return JSON.parse(raw
|
|
70
|
-
.replace(/("(?:[^"\\]|\\.)*")|\/\/[^\n]*|\/\*[\s\S]*?\*\//g, (_, str) => str ?? "")
|
|
71
|
-
.replace(/,(\s*[}\]])/g, "$1"));
|
|
72
|
-
}
|
|
73
|
-
resolveImport(importPath, fileDir, rootOutDir, rootDir, ext, resolvedPaths, compiledAliases) {
|
|
74
|
-
if (importPath.startsWith(".") || importPath.startsWith("/")) {
|
|
75
|
-
return this.addExtension(importPath, fileDir, ext);
|
|
76
|
-
}
|
|
77
|
-
for (const alias of compiledAliases) {
|
|
78
|
-
if (alias.isWildcard) {
|
|
79
|
-
if (!importPath.startsWith(alias.prefix + "/"))
|
|
80
|
-
continue;
|
|
81
|
-
const remainder = importPath.slice(alias.prefix.length + 1);
|
|
82
|
-
for (const target of alias.targets) {
|
|
83
|
-
const absoluteSource = path_1.default.resolve(resolvedPaths.baseUrl, target.replace("*", remainder));
|
|
84
|
-
const fileDirInSource = this.getFileDirInSource(fileDir, rootOutDir, rootDir, resolvedPaths.baseUrl);
|
|
85
|
-
return this.addExtension(this.toRelative(fileDirInSource, absoluteSource), fileDir, ext);
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
else {
|
|
89
|
-
if (importPath !== alias.prefix)
|
|
90
|
-
continue;
|
|
91
|
-
for (const target of alias.targets) {
|
|
92
|
-
const absoluteSource = path_1.default.resolve(resolvedPaths.baseUrl, target);
|
|
93
|
-
const fileDirInSource = this.getFileDirInSource(fileDir, rootOutDir, rootDir, resolvedPaths.baseUrl);
|
|
94
|
-
return this.addExtension(this.toRelative(fileDirInSource, absoluteSource), fileDir, ext);
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
return importPath;
|
|
99
|
-
}
|
|
100
|
-
getFileDirInSource(fileDir, rootOutDir, rootDir, baseUrl) {
|
|
101
|
-
const relToRootDir = path_1.default.relative(rootDir, rootOutDir);
|
|
102
|
-
if (!relToRootDir)
|
|
103
|
-
return baseUrl;
|
|
104
|
-
const distFolderName = relToRootDir.split(path_1.default.sep)[0];
|
|
105
|
-
const distRoot = path_1.default.join(rootDir, distFolderName);
|
|
106
|
-
const relFromDistRoot = path_1.default.relative(distRoot, fileDir);
|
|
107
|
-
return path_1.default.resolve(baseUrl, relFromDistRoot);
|
|
108
|
-
}
|
|
109
|
-
addExtension(importPath, fileDir, ext) {
|
|
110
|
-
if (importPath.endsWith(ext))
|
|
111
|
-
return importPath;
|
|
112
|
-
const absolute = path_1.default.resolve(fileDir, importPath);
|
|
113
|
-
if (fs_1.default.existsSync(absolute + "/index" + ext)) {
|
|
114
|
-
return importPath + "/index" + ext;
|
|
115
|
-
}
|
|
116
|
-
return importPath + ext;
|
|
117
|
-
}
|
|
118
|
-
toRelative(fromDir, toPath) {
|
|
119
|
-
const rel = path_1.default.relative(fromDir, toPath).replace(/\\/g, "/");
|
|
120
|
-
return rel.startsWith(".") ? rel : "./" + rel;
|
|
121
|
-
}
|
|
122
|
-
rewriteImports(content, fileDir, rootOutDir, rootDir, ext, resolvedPaths, compiledAliases) {
|
|
123
|
-
for (const regex of Bundler.IMPORT_REGEXES) {
|
|
124
|
-
regex.lastIndex = 0;
|
|
125
|
-
content = content.replace(regex, (match, p) => {
|
|
126
|
-
const fixed = this.resolveImport(p, fileDir, rootOutDir, rootDir, ext, resolvedPaths, compiledAliases);
|
|
127
|
-
return fixed === p ? match : match.replace(p, fixed);
|
|
128
|
-
});
|
|
129
|
-
}
|
|
130
|
-
return content;
|
|
131
|
-
}
|
|
132
|
-
bundle(options) {
|
|
133
|
-
const rootDir = path_1.default.resolve(options.rootDir || process.cwd());
|
|
134
|
-
const outDir = path_1.default.resolve(options.outDir);
|
|
135
|
-
const resolvedPaths = this.loadConfig(rootDir, options.configPath);
|
|
136
|
-
const compiledAliases = this.compileAliases(resolvedPaths);
|
|
137
|
-
this._bundleDir(options.ext, outDir, rootDir, resolvedPaths, compiledAliases, outDir);
|
|
138
|
-
}
|
|
139
|
-
_bundleDir(ext, rootOutDir, rootDir, resolvedPaths, compiledAliases, dir) {
|
|
140
|
-
const entries = fs_1.default.readdirSync(dir, { withFileTypes: true });
|
|
141
|
-
for (const entry of entries) {
|
|
142
|
-
const fullPath = path_1.default.join(dir, entry.name);
|
|
143
|
-
if (entry.isDirectory()) {
|
|
144
|
-
this._bundleDir(ext, rootOutDir, rootDir, resolvedPaths, compiledAliases, fullPath);
|
|
145
|
-
}
|
|
146
|
-
else if (/\.(js|cjs|mjs)$/.test(entry.name)) {
|
|
147
|
-
const content = fs_1.default.readFileSync(fullPath, "utf8");
|
|
148
|
-
const updated = this.rewriteImports(content, path_1.default.dirname(fullPath), rootOutDir, rootDir, ext, resolvedPaths, compiledAliases);
|
|
149
|
-
if (updated !== content)
|
|
150
|
-
fs_1.default.writeFileSync(fullPath, updated);
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
exports.Bundler = Bundler;
|
|
156
|
-
Bundler.IMPORT_REGEXES = [
|
|
157
|
-
/from\s+['"]([^'"]+)['"]/g,
|
|
158
|
-
/import\s+['"]([^'"]+)['"]/g,
|
|
159
|
-
/import\s*\(\s*['"]([^'"]+)['"]\s*\)/g,
|
|
160
|
-
/require\s*\(\s*['"]([^'"]+)['"]\s*\)/g,
|
|
161
|
-
];
|
|
162
|
-
exports.bundler = new Bundler();
|
|
163
|
-
//# sourceMappingURL=bundler.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bundler.js","sourceRoot":"","sources":["../../../src/utils/bundler.ts"],"names":[],"mappings":"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","sourcesContent":["import fs from \"fs\";\nimport path from \"path\";\n\n/**\n * Options for configuring a bundle run.\n */\ninterface BundlerOptions {\n /** Output file extension: \".js\" | \".cjs\" | \".mjs\" */\n ext: string;\n /** Directory containing the compiled output files to process */\n outDir: string;\n /** Source root directory used to resolve tsconfig paths. Defaults to process.cwd() */\n rootDir?: string;\n /** Explicit path to tsconfig.json or jsconfig.json. Auto-detected from rootDir if omitted */\n configPath?: string;\n}\n\n/**\n * Resolved path aliases and base URL extracted from tsconfig/jsconfig.\n */\ninterface ResolvedPaths {\n /** Absolute path used as the base for resolving alias targets */\n baseUrl: string;\n /** Map of alias patterns to their target path arrays, e.g. { \"@/*\": [\"src/*\"] } */\n paths: Record<string, string[]>;\n}\n\n/**\n * A pre-compiled alias entry for efficient matching at runtime.\n */\ninterface CompiledAlias {\n /** The alias prefix, e.g. \"@\" for \"@/*\" or \"@utils\" for \"@utils/*\" */\n prefix: string;\n /** Whether the alias uses a wildcard, e.g. \"@/*\" vs \"@root\" */\n isWildcard: boolean;\n /** Ordered list of target paths to try when the alias matches */\n targets: string[];\n}\n\n/**\n * Post-compilation import rewriter and alias resolver.\n *\n * Recursively processes all `.js`, `.cjs`, and `.mjs` files in the output\n * directory, rewriting:\n * - Relative imports to include the correct file extension\n * - Directory imports to use `/index.ext`\n * - Path aliases defined in tsconfig/jsconfig `paths` to relative paths\n *\n * Bare node_modules specifiers (e.g. `\"express\"`, `\"@prisma/client\"`) are\n * left untouched.\n *\n * @example\n * ```ts\n * const bundler = new Bundler();\n *\n * bundler.bundle({\n * ext: \".js\",\n * outDir: \"./dist\",\n * rootDir: \"./\",\n * configPath: \"./tsconfig.json\",\n * });\n * ```\n */\nexport class Bundler {\n /**\n * Regexes for matching all import/export/require statement forms.\n * Defined as static to avoid recreation per file processed.\n */\n private static readonly IMPORT_REGEXES = [\n /from\\s+['\"]([^'\"]+)['\"]/g,\n /import\\s+['\"]([^'\"]+)['\"]/g,\n /import\\s*\\(\\s*['\"]([^'\"]+)['\"]\\s*\\)/g,\n /require\\s*\\(\\s*['\"]([^'\"]+)['\"]\\s*\\)/g,\n ];\n\n /**\n * Pre-compiles path alias patterns into a lookup-friendly structure\n * so alias matching during processing is O(n) over aliases rather than\n * re-parsing patterns per import.\n */\n private compileAliases(resolvedPaths: ResolvedPaths): CompiledAlias[] {\n return Object.entries(resolvedPaths.paths).map(([pattern, targets]) => {\n const isWildcard = pattern.endsWith(\"/*\");\n return {\n prefix: isWildcard ? pattern.slice(0, -2) : pattern,\n isWildcard,\n targets,\n };\n });\n }\n\n /**\n * Loads and parses the tsconfig/jsconfig file, resolving any `extends` chain.\n * Falls back to `{ baseUrl: rootDir, paths: {} }` if no config is found.\n *\n * @param rootDir - Absolute root directory\n * @param configPath - Explicit config path, or undefined to auto-detect\n */\n private loadConfig(rootDir: string, configPath?: string): ResolvedPaths {\n const resolved = configPath\n ? path.resolve(configPath)\n : this.findConfig(rootDir);\n\n if (!resolved || !fs.existsSync(resolved)) {\n return { baseUrl: rootDir, paths: {} };\n }\n\n return this.parseConfig(resolved, rootDir);\n }\n\n /**\n * Searches for a tsconfig.json or jsconfig.json in the given directory.\n * Prefers tsconfig.json over jsconfig.json.\n *\n * @param dir - Directory to search in\n * @returns Absolute path to the config file, or null if not found\n */\n private findConfig(dir: string): string | null {\n for (const name of [\"tsconfig.json\", \"jsconfig.json\"]) {\n const candidate = path.join(dir, name);\n if (fs.existsSync(candidate)) return candidate;\n }\n return null;\n }\n\n /**\n * Recursively parses a tsconfig/jsconfig file, following `extends` chains\n * and merging `paths` with child config taking precedence over parent.\n *\n * @param configPath - Absolute path to the config file to parse\n * @param rootDir - Absolute root directory used as fallback baseUrl\n */\n private parseConfig(configPath: string, rootDir: string): ResolvedPaths {\n const configDir = path.dirname(configPath);\n const raw = this.readJsonWithComments(configPath);\n\n let base: ResolvedPaths = { baseUrl: rootDir, paths: {} };\n\n if (raw.extends) {\n const isPackage = !raw.extends.startsWith(\".\");\n const parentPath = isPackage\n ? this.resolveNodeModulesConfig(raw.extends, rootDir)\n : path.resolve(configDir, raw.extends);\n\n if (parentPath && fs.existsSync(parentPath)) {\n base = this.parseConfig(parentPath, rootDir);\n }\n }\n\n const co = raw.compilerOptions || {};\n const baseUrl = co.baseUrl\n ? path.resolve(configDir, co.baseUrl)\n : base.baseUrl;\n\n return {\n baseUrl,\n paths: { ...base.paths, ...(co.paths || {}) },\n };\n }\n\n /**\n * Resolves a tsconfig `extends` value that points to a node_modules package,\n * e.g. `\"@tsconfig/node18/tsconfig.json\"`.\n *\n * @param extendsValue - The raw extends string from tsconfig\n * @param rootDir - Root directory to resolve from\n * @returns Absolute path to the resolved config file, or null if not found\n */\n private resolveNodeModulesConfig(\n extendsValue: string,\n rootDir: string\n ): string | null {\n try {\n return require.resolve(extendsValue, { paths: [rootDir] });\n } catch {\n return null;\n }\n }\n\n /**\n * Reads a JSON file that may contain comments and trailing commas\n * (as tsconfig/jsconfig files allow) and returns the parsed object.\n *\n * @param filePath - Absolute path to the JSON file\n * @returns Parsed object, or empty object if parsing fails\n */\n private readJsonWithComments(filePath: string): any {\n const raw = fs.readFileSync(filePath, \"utf8\");\n\n return JSON.parse(\n raw\n .replace(\n /(\"(?:[^\"\\\\]|\\\\.)*\")|\\/\\/[^\\n]*|\\/\\*[\\s\\S]*?\\*\\//g,\n (_, str) => str ?? \"\"\n )\n .replace(/,(\\s*[}\\]])/g, \"$1\")\n );\n }\n\n /**\n * Resolves a single import path to its final rewritten form.\n *\n * Resolution order:\n * 1. Relative imports (`./`, `../`) — extension is added via `addExtension`\n * 2. Aliased imports — matched against compiled aliases and converted to relative paths\n * 3. Bare specifiers (`express`, `@prisma/client`) — returned untouched\n *\n * @param importPath - The raw import string from source code\n * @param fileDir - Absolute directory of the file containing the import\n * @param ext - The output file extension\n * @param resolvedPaths - Resolved baseUrl and paths from tsconfig\n * @param compiledAliases - Pre-compiled alias entries\n */\n\n private resolveImport(\n importPath: string,\n fileDir: string,\n rootOutDir: string,\n rootDir: string,\n ext: string,\n resolvedPaths: ResolvedPaths,\n compiledAliases: CompiledAlias[]\n ): string {\n if (importPath.startsWith(\".\") || importPath.startsWith(\"/\")) {\n return this.addExtension(importPath, fileDir, ext);\n }\n\n for (const alias of compiledAliases) {\n if (alias.isWildcard) {\n if (!importPath.startsWith(alias.prefix + \"/\")) continue;\n const remainder = importPath.slice(alias.prefix.length + 1);\n\n for (const target of alias.targets) {\n const absoluteSource = path.resolve(\n resolvedPaths.baseUrl,\n target.replace(\"*\", remainder)\n );\n const fileDirInSource = this.getFileDirInSource(\n fileDir,\n rootOutDir,\n rootDir,\n resolvedPaths.baseUrl\n );\n return this.addExtension(\n this.toRelative(fileDirInSource, absoluteSource),\n fileDir,\n ext\n );\n }\n } else {\n if (importPath !== alias.prefix) continue;\n for (const target of alias.targets) {\n const absoluteSource = path.resolve(resolvedPaths.baseUrl, target);\n const fileDirInSource = this.getFileDirInSource(\n fileDir,\n rootOutDir,\n rootDir,\n resolvedPaths.baseUrl\n );\n return this.addExtension(\n this.toRelative(fileDirInSource, absoluteSource),\n fileDir,\n ext\n );\n }\n }\n }\n\n return importPath;\n }\n\n private getFileDirInSource(\n fileDir: string,\n rootOutDir: string,\n rootDir: string,\n baseUrl: string\n ): string {\n const relToRootDir = path.relative(rootDir, rootOutDir);\n if (!relToRootDir) return baseUrl;\n\n // First component of relToRootDir is the dist folder name (e.g. \"dist\")\n const distFolderName = relToRootDir.split(path.sep)[0];\n const distRoot = path.join(rootDir, distFolderName);\n const relFromDistRoot = path.relative(distRoot, fileDir);\n return path.resolve(baseUrl, relFromDistRoot);\n }\n\n /**\n * Appends the configured extension to an import path if not already present.\n * If the path resolves to a directory containing an `index` file, appends\n * `/index.ext` instead.\n *\n * @param importPath - The relative import path to fix\n * @param fileDir - Absolute directory of the file containing the import\n * @param ext - The output file extension\n */\n private addExtension(\n importPath: string,\n fileDir: string,\n ext: string\n ): string {\n if (importPath.endsWith(ext)) return importPath;\n\n const absolute = path.resolve(fileDir, importPath);\n if (fs.existsSync(absolute + \"/index\" + ext)) {\n return importPath + \"/index\" + ext;\n }\n\n return importPath + ext;\n }\n\n /**\n * Converts an absolute path to a relative path from a given directory,\n * ensuring the result always starts with `./` or `../`.\n *\n * @param fromDir - The directory to compute the relative path from\n * @param toPath - The absolute target path\n * @returns A POSIX-style relative path\n */\n private toRelative(fromDir: string, toPath: string): string {\n const rel = path.relative(fromDir, toPath).replace(/\\\\/g, \"/\");\n return rel.startsWith(\".\") ? rel : \"./\" + rel;\n }\n\n /**\n * Rewrites all import/export/require statements in a string of JS source code.\n * Each regex is reset before use since they are stateful with the `/g` flag.\n *\n * @param content - Raw file content to process\n * @param fileDir - Absolute directory of the file being processed\n * @param ext - The output file extension\n * @param resolvedPaths - Resolved baseUrl and paths from tsconfig\n * @param compiledAliases - Pre-compiled alias entries\n */\n private rewriteImports(\n content: string,\n fileDir: string,\n rootOutDir: string,\n rootDir: string,\n ext: string,\n resolvedPaths: ResolvedPaths,\n compiledAliases: CompiledAlias[]\n ): string {\n for (const regex of Bundler.IMPORT_REGEXES) {\n regex.lastIndex = 0;\n content = content.replace(regex, (match, p) => {\n const fixed = this.resolveImport(\n p,\n fileDir,\n rootOutDir,\n rootDir,\n ext,\n resolvedPaths,\n compiledAliases\n );\n return fixed === p ? match : match.replace(p, fixed);\n });\n }\n return content;\n }\n\n /**\n * Recursively processes all `.js`, `.cjs`, and `.mjs` files in the output\n * directory, rewriting imports in-place. Files whose content is unchanged\n * are not written back to disk.\n *\n * @param options - Configuration options for this bundle run\n */\n bundle(options: BundlerOptions): void {\n const rootDir = path.resolve(options.rootDir || process.cwd());\n const outDir = path.resolve(options.outDir);\n const resolvedPaths = this.loadConfig(rootDir, options.configPath);\n const compiledAliases = this.compileAliases(resolvedPaths);\n\n this._bundleDir(\n options.ext,\n outDir,\n rootDir,\n resolvedPaths,\n compiledAliases,\n outDir\n );\n }\n\n /**\n * Internal recursive directory walker, separated so that `bundle()` only\n * resolves config once at the top level rather than on every recursion.\n */\n private _bundleDir(\n ext: string,\n rootOutDir: string,\n rootDir: string,\n resolvedPaths: ResolvedPaths,\n compiledAliases: CompiledAlias[],\n dir: string\n ): void {\n const entries = fs.readdirSync(dir, { withFileTypes: true });\n\n for (const entry of entries) {\n const fullPath = path.join(dir, entry.name);\n\n if (entry.isDirectory()) {\n this._bundleDir(\n ext,\n rootOutDir,\n rootDir,\n resolvedPaths,\n compiledAliases,\n fullPath\n );\n } else if (/\\.(js|cjs|mjs)$/.test(entry.name)) {\n const content = fs.readFileSync(fullPath, \"utf8\");\n const updated = this.rewriteImports(\n content,\n path.dirname(fullPath),\n rootOutDir,\n rootDir,\n ext,\n resolvedPaths,\n compiledAliases\n );\n if (updated !== content) fs.writeFileSync(fullPath, updated);\n }\n }\n }\n}\n\nexport const bundler = new Bundler();\n"]}
|
|
@@ -1,199 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.buildCommand = buildCommand;
|
|
7
|
-
const path_1 = __importDefault(require("path"));
|
|
8
|
-
const fs_1 = __importDefault(require("fs"));
|
|
9
|
-
const child_process_1 = require("child_process");
|
|
10
|
-
const fs_helpers_1 = require("../helpers/fs.helpers.js");
|
|
11
|
-
const dotenv_helpers_1 = require("../dotenv.helpers.js");
|
|
12
|
-
const global_helpers_1 = require("../helpers/global.helpers.js");
|
|
13
|
-
const sheu_1 = __importDefault(require("../sheu.js"));
|
|
14
|
-
const watermark_stamper_1 = __importDefault(require("./utils/watermark-stamper.js"));
|
|
15
|
-
const remove_dir_1 = require("../remove-dir.js");
|
|
16
|
-
const bundler_1 = require("../bundler.js");
|
|
17
|
-
const BUILD_DIR = ".build";
|
|
18
|
-
const MODULE_TYPES = ["cjs", "esm"];
|
|
19
|
-
function buildCommand(options = {}) {
|
|
20
|
-
process.env.NO_CLI = "true";
|
|
21
|
-
const fileExt = (0, fs_helpers_1.getUserFileExtension)();
|
|
22
|
-
if (process.env.NODE_ENV === "test" || !process.env.NODE_ENV)
|
|
23
|
-
process.env.NODE_ENV = "production";
|
|
24
|
-
process.env.ARKOS_BUILD = "true";
|
|
25
|
-
const envFiles = (0, dotenv_helpers_1.loadEnvironmentVariables)();
|
|
26
|
-
const moduleType = validateModuleType(options.module);
|
|
27
|
-
try {
|
|
28
|
-
watermark_stamper_1.default.stamp({
|
|
29
|
-
envFiles,
|
|
30
|
-
});
|
|
31
|
-
console.info(`\n Creating an optimized production build...`);
|
|
32
|
-
ensureBuildDir();
|
|
33
|
-
if (fileExt === "ts")
|
|
34
|
-
buildTypeScriptProject(options, moduleType);
|
|
35
|
-
else
|
|
36
|
-
buildJavaScriptProject(options, moduleType);
|
|
37
|
-
const packageManger = (0, global_helpers_1.detectPackageManagerFromUserAgent)();
|
|
38
|
-
console.info(`\n\x1b[1m\x1b[32m Build complete!\x1b[0m\n`);
|
|
39
|
-
console.info(` \x1b[1mNext step:\x1b[0m`);
|
|
40
|
-
console.info(` Run it using \x1b[1m\x1b[36m${packageManger} run start\x1b[0m\n`);
|
|
41
|
-
}
|
|
42
|
-
catch (err) {
|
|
43
|
-
console.info("");
|
|
44
|
-
sheu_1.default.error(`Build failed: ${err?.message}`);
|
|
45
|
-
console.error(err);
|
|
46
|
-
process.exit(1);
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
function validateModuleType(moduleType) {
|
|
50
|
-
if (!moduleType)
|
|
51
|
-
return "cjs";
|
|
52
|
-
const normalizedType = moduleType.toLowerCase();
|
|
53
|
-
if (normalizedType === "cjs" || normalizedType === "commonjs")
|
|
54
|
-
return "cjs";
|
|
55
|
-
else if (["esm", "es", "es2020", "esnext", "module"].includes(normalizedType))
|
|
56
|
-
return "esm";
|
|
57
|
-
sheu_1.default.warn(`Unrecognized module type "${moduleType}", defaulting to "cjs"`);
|
|
58
|
-
return "cjs";
|
|
59
|
-
}
|
|
60
|
-
function ensureBuildDir() {
|
|
61
|
-
if (!fs_1.default.existsSync(BUILD_DIR))
|
|
62
|
-
fs_1.default.mkdirSync(BUILD_DIR, { recursive: true });
|
|
63
|
-
for (const moduleType of MODULE_TYPES) {
|
|
64
|
-
const moduleDir = path_1.default.join(BUILD_DIR, moduleType);
|
|
65
|
-
if (!fs_1.default.existsSync(moduleDir)) {
|
|
66
|
-
fs_1.default.mkdirSync(moduleDir, { recursive: true });
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
function buildTypeScriptProject(options, moduleType) {
|
|
71
|
-
const tsconfigPath = path_1.default.join(process.cwd(), options.config || "tsconfig.json");
|
|
72
|
-
let tsconfig = {};
|
|
73
|
-
try {
|
|
74
|
-
if (fs_1.default.existsSync(tsconfigPath)) {
|
|
75
|
-
const tsconfigContent = fs_1.default.readFileSync(tsconfigPath, "utf8");
|
|
76
|
-
tsconfig = JSON.parse(tsconfigContent);
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
catch (error) {
|
|
80
|
-
console.error("❌ Error reading tsconfig.json:", error);
|
|
81
|
-
}
|
|
82
|
-
const tempTsconfig = {
|
|
83
|
-
...tsconfig,
|
|
84
|
-
compilerOptions: {
|
|
85
|
-
...(tsconfig.compilerOptions || {}),
|
|
86
|
-
rootDir: ".",
|
|
87
|
-
outDir: path_1.default.join(`./${BUILD_DIR}`),
|
|
88
|
-
},
|
|
89
|
-
};
|
|
90
|
-
const tempTsconfigPath = path_1.default.join(process.cwd(), `tsconfig.arkos-build.json`);
|
|
91
|
-
fs_1.default.writeFileSync(tempTsconfigPath, JSON.stringify(tempTsconfig, null, 2));
|
|
92
|
-
try {
|
|
93
|
-
(0, remove_dir_1.removeDir)(BUILD_DIR);
|
|
94
|
-
(0, child_process_1.execSync)(`npx tsc -p ${tempTsconfigPath}`, {
|
|
95
|
-
stdio: "inherit",
|
|
96
|
-
cwd: process.cwd(),
|
|
97
|
-
});
|
|
98
|
-
copyAllNonSourceFiles(moduleType, [".ts", ".tsx"]);
|
|
99
|
-
bundler_1.bundler.bundle({
|
|
100
|
-
ext: ".js",
|
|
101
|
-
outDir: path_1.default.join(process.cwd(), BUILD_DIR),
|
|
102
|
-
rootDir: process.cwd(),
|
|
103
|
-
configPath: tempTsconfigPath,
|
|
104
|
-
});
|
|
105
|
-
cleanupTempConfig(tempTsconfigPath);
|
|
106
|
-
}
|
|
107
|
-
catch (error) {
|
|
108
|
-
cleanupTempConfig(tempTsconfigPath);
|
|
109
|
-
throw error;
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
function buildJavaScriptProject(_, moduleType) {
|
|
113
|
-
const targetDir = path_1.default.join(BUILD_DIR);
|
|
114
|
-
try {
|
|
115
|
-
if (moduleType === "esm") {
|
|
116
|
-
(0, child_process_1.execSync)(`npx copyfiles -u 0 "src/**/*.js" "src/**/*.jsx" "src/**/*.mjs" ${targetDir}`, {
|
|
117
|
-
stdio: "inherit",
|
|
118
|
-
cwd: process.cwd(),
|
|
119
|
-
});
|
|
120
|
-
console.info("Note: .cjs files are skipped in ESM build");
|
|
121
|
-
}
|
|
122
|
-
else {
|
|
123
|
-
(0, child_process_1.execSync)(`npx copyfiles -u 0 "src/**/*.js" "src/**/*.jsx" "src/**/*.cjs" "src/**/*.mjs" ${targetDir}`, {
|
|
124
|
-
stdio: "inherit",
|
|
125
|
-
cwd: process.cwd(),
|
|
126
|
-
});
|
|
127
|
-
}
|
|
128
|
-
copyAllNonSourceFiles(moduleType, [
|
|
129
|
-
".js",
|
|
130
|
-
".jsx",
|
|
131
|
-
".mjs",
|
|
132
|
-
".cjs",
|
|
133
|
-
".ts",
|
|
134
|
-
".tsx",
|
|
135
|
-
]);
|
|
136
|
-
bundler_1.bundler.bundle({
|
|
137
|
-
ext: ".js",
|
|
138
|
-
outDir: path_1.default.join(process.cwd(), BUILD_DIR),
|
|
139
|
-
rootDir: process.cwd(),
|
|
140
|
-
});
|
|
141
|
-
}
|
|
142
|
-
catch (error) {
|
|
143
|
-
console.error("❌ Error building JavaScript project:", error);
|
|
144
|
-
throw error;
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
function copyAllNonSourceFiles(_, skipExtensions) {
|
|
148
|
-
const targetDir = path_1.default.join(BUILD_DIR);
|
|
149
|
-
const sourceDir = "src";
|
|
150
|
-
try {
|
|
151
|
-
function copyDirRecursive(dir) {
|
|
152
|
-
if (!fs_1.default.existsSync(dir))
|
|
153
|
-
return;
|
|
154
|
-
const items = fs_1.default.readdirSync(dir);
|
|
155
|
-
for (const item of items) {
|
|
156
|
-
const sourcePath = path_1.default.join(dir, item);
|
|
157
|
-
const targetPath = path_1.default.join(targetDir, dir.replace(sourceDir, ""), item);
|
|
158
|
-
const stats = fs_1.default.statSync(sourcePath);
|
|
159
|
-
if (stats.isDirectory()) {
|
|
160
|
-
if (!fs_1.default.existsSync(targetPath)) {
|
|
161
|
-
fs_1.default.mkdirSync(targetPath, { recursive: true });
|
|
162
|
-
}
|
|
163
|
-
copyDirRecursive(sourcePath);
|
|
164
|
-
}
|
|
165
|
-
else if (stats.isFile()) {
|
|
166
|
-
const ext = path_1.default.extname(item).toLowerCase();
|
|
167
|
-
if (!skipExtensions.includes(ext)) {
|
|
168
|
-
const targetDir = path_1.default.dirname(targetPath);
|
|
169
|
-
if (!fs_1.default.existsSync(targetDir)) {
|
|
170
|
-
fs_1.default.mkdirSync(targetDir, { recursive: true });
|
|
171
|
-
}
|
|
172
|
-
fs_1.default.copyFileSync(sourcePath, targetPath);
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
}
|
|
177
|
-
copyDirRecursive(sourceDir);
|
|
178
|
-
const rootFilesToCopy = ["arkos.config.js"];
|
|
179
|
-
for (const file of rootFilesToCopy) {
|
|
180
|
-
if (fs_1.default.existsSync(path_1.default.join(process.cwd(), file))) {
|
|
181
|
-
fs_1.default.copyFileSync(path_1.default.join(process.cwd(), file), path_1.default.join(targetDir, file));
|
|
182
|
-
}
|
|
183
|
-
}
|
|
184
|
-
}
|
|
185
|
-
catch (error) {
|
|
186
|
-
console.warn("Warning: Error copying project files:", error);
|
|
187
|
-
console.error(error);
|
|
188
|
-
}
|
|
189
|
-
}
|
|
190
|
-
function cleanupTempConfig(configPath) {
|
|
191
|
-
try {
|
|
192
|
-
if (fs_1.default.existsSync(configPath))
|
|
193
|
-
fs_1.default.unlinkSync(configPath);
|
|
194
|
-
}
|
|
195
|
-
catch (error) {
|
|
196
|
-
console.warn("Warning: Error cleaning up temporary config:", error);
|
|
197
|
-
}
|
|
198
|
-
}
|
|
199
|
-
//# sourceMappingURL=build.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"build.js","sourceRoot":"","sources":["../../../../src/utils/cli/build.ts"],"names":[],"mappings":";;;;;AAuBA,oCAmCC;AA1DD,gDAAwB;AACxB,4CAAoB;AACpB,iDAAyC;AACzC,sDAA6D;AAC7D,sDAA6D;AAC7D,8DAA8E;AAC9E,mDAA2B;AAC3B,kFAAyD;AACzD,8CAA0C;AAC1C,wCAAqC;AAErC,MAAM,SAAS,GAAG,QAAQ,CAAC;AAC3B,MAAM,YAAY,GAAG,CAAC,KAAK,EAAE,KAAK,CAAU,CAAC;AAW7C,SAAgB,YAAY,CAAC,UAAwB,EAAE;IACrD,OAAO,CAAC,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC;IAC5B,MAAM,OAAO,GAAG,IAAA,iCAAoB,GAAE,CAAC;IACvC,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ;QAC1D,OAAO,CAAC,GAAG,CAAC,QAAQ,GAAG,YAAY,CAAC;IACtC,OAAO,CAAC,GAAG,CAAC,WAAW,GAAG,MAAM,CAAC;IAEjC,MAAM,QAAQ,GAAG,IAAA,yCAAwB,GAAE,CAAC;IAC5C,MAAM,UAAU,GAAG,kBAAkB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAEtD,IAAI,CAAC;QACH,2BAAgB,CAAC,KAAK,CAAC;YACrB,QAAQ;SACT,CAAC,CAAC;QAEH,OAAO,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC;QAE9D,cAAc,EAAE,CAAC;QAEjB,IAAI,OAAO,KAAK,IAAI;YAAE,sBAAsB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;;YAC7D,sBAAsB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QAEjD,MAAM,aAAa,GAAG,IAAA,kDAAiC,GAAE,CAAC;QAE1D,OAAO,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC;QAC5D,OAAO,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;QAC3C,OAAO,CAAC,IAAI,CACV,iCAAiC,aAAa,qBAAqB,CACpE,CAAC;IACJ,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjB,cAAI,CAAC,KAAK,CAAC,iBAAiB,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC;QAC5C,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAKD,SAAS,kBAAkB,CAAC,UAAmB;IAC7C,IAAI,CAAC,UAAU;QAAE,OAAO,KAAK,CAAC;IAE9B,MAAM,cAAc,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC;IAEhD,IAAI,cAAc,KAAK,KAAK,IAAI,cAAc,KAAK,UAAU;QAAE,OAAO,KAAK,CAAC;SACvE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC;QAC3E,OAAO,KAAK,CAAC;IAEf,cAAI,CAAC,IAAI,CAAC,6BAA6B,UAAU,wBAAwB,CAAC,CAAC;IAC3E,OAAO,KAAK,CAAC;AACf,CAAC;AAKD,SAAS,cAAc;IACrB,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,SAAS,CAAC;QAAE,YAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAE5E,KAAK,MAAM,UAAU,IAAI,YAAY,EAAE,CAAC;QACtC,MAAM,SAAS,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QACnD,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC9B,YAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;AACH,CAAC;AAKD,SAAS,sBAAsB,CAAC,OAAqB,EAAE,UAAsB;IAC3E,MAAM,YAAY,GAAG,cAAI,CAAC,IAAI,CAC5B,OAAO,CAAC,GAAG,EAAE,EACb,OAAO,CAAC,MAAM,IAAI,eAAe,CAClC,CAAC;IACF,IAAI,QAAQ,GAAQ,EAAE,CAAC;IAEvB,IAAI,CAAC;QACH,IAAI,YAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YAChC,MAAM,eAAe,GAAG,YAAE,CAAC,YAAY,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;YAC9D,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QACzC,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,gCAAgC,EAAE,KAAK,CAAC,CAAC;IACzD,CAAC;IAED,MAAM,YAAY,GAAG;QACnB,GAAG,QAAQ;QACX,eAAe,EAAE;YACf,GAAG,CAAC,QAAQ,CAAC,eAAe,IAAI,EAAE,CAAC;YACnC,OAAO,EAAE,GAAG;YACZ,MAAM,EAAE,cAAI,CAAC,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;SACpC;KACF,CAAC;IAEF,MAAM,gBAAgB,GAAG,cAAI,CAAC,IAAI,CAChC,OAAO,CAAC,GAAG,EAAE,EACb,2BAA2B,CAC5B,CAAC;IACF,YAAE,CAAC,aAAa,CAAC,gBAAgB,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAE1E,IAAI,CAAC;QACH,IAAA,sBAAS,EAAC,SAAS,CAAC,CAAC;QACrB,IAAA,wBAAQ,EAAC,cAAc,gBAAgB,EAAE,EAAE;YACzC,KAAK,EAAE,SAAS;YAChB,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;SACnB,CAAC,CAAC;QAEH,qBAAqB,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;QACnD,iBAAO,CAAC,MAAM,CAAC;YACb,GAAG,EAAE,KAAK;YACV,MAAM,EAAE,cAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC;YAC3C,OAAO,EAAE,OAAO,CAAC,GAAG,EAAE;YACtB,UAAU,EAAE,gBAAgB;SAC7B,CAAC,CAAC;QAGH,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;IACtC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;QACpC,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAKD,SAAS,sBAAsB,CAAC,CAAe,EAAE,UAAsB;IACrE,MAAM,SAAS,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAEvC,IAAI,CAAC;QACH,IAAI,UAAU,KAAK,KAAK,EAAE,CAAC;YACzB,IAAA,wBAAQ,EACN,kEAAkE,SAAS,EAAE,EAC7E;gBACE,KAAK,EAAE,SAAS;gBAChB,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;aACnB,CACF,CAAC;YAEF,OAAO,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC;QAC5D,CAAC;aAAM,CAAC;YACN,IAAA,wBAAQ,EACN,iFAAiF,SAAS,EAAE,EAC5F;gBACE,KAAK,EAAE,SAAS;gBAChB,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;aACnB,CACF,CAAC;QACJ,CAAC;QAED,qBAAqB,CAAC,UAAU,EAAE;YAChC,KAAK;YACL,MAAM;YACN,MAAM;YACN,MAAM;YACN,KAAK;YACL,MAAM;SACP,CAAC,CAAC;QAEH,iBAAO,CAAC,MAAM,CAAC;YACb,GAAG,EAAE,KAAK;YACV,MAAM,EAAE,cAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC;YAC3C,OAAO,EAAE,OAAO,CAAC,GAAG,EAAE;SACvB,CAAC,CAAC;IAEL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,sCAAsC,EAAE,KAAK,CAAC,CAAC;QAC7D,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAMD,SAAS,qBAAqB,CAAC,CAAa,EAAE,cAAwB;IACpE,MAAM,SAAS,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACvC,MAAM,SAAS,GAAG,KAAK,CAAC;IAExB,IAAI,CAAC;QAEH,SAAS,gBAAgB,CAAC,GAAW;YACnC,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,GAAG,CAAC;gBAAE,OAAO;YAEhC,MAAM,KAAK,GAAG,YAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YAElC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,MAAM,UAAU,GAAG,cAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;gBACxC,MAAM,UAAU,GAAG,cAAI,CAAC,IAAI,CAC1B,SAAS,EACT,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,EAC1B,IAAI,CACL,CAAC;gBAGF,MAAM,KAAK,GAAG,YAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;gBAEtC,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;oBAExB,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;wBAC/B,YAAE,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;oBAChD,CAAC;oBAED,gBAAgB,CAAC,UAAU,CAAC,CAAC;gBAC/B,CAAC;qBAAM,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;oBAE1B,MAAM,GAAG,GAAG,cAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;oBAC7C,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;wBAElC,MAAM,SAAS,GAAG,cAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;wBAC3C,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;4BAC9B,YAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;wBAC/C,CAAC;wBAED,YAAE,CAAC,YAAY,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;oBAC1C,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAGD,gBAAgB,CAAC,SAAS,CAAC,CAAC;QAG5B,MAAM,eAAe,GAAG,CAAC,iBAAiB,CAAC,CAAC;QAE5C,KAAK,MAAM,IAAI,IAAI,eAAe,EAAE,CAAC;YACnC,IAAI,YAAE,CAAC,UAAU,CAAC,cAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC;gBAClD,YAAE,CAAC,YAAY,CACb,cAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,EAC9B,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAC3B,CAAC;YACJ,CAAC;QACH,CAAC;IAGH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,uCAAuC,EAAE,KAAK,CAAC,CAAC;QAC7D,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;AACH,CAAC;AAKD,SAAS,iBAAiB,CAAC,UAAkB;IAC3C,IAAI,CAAC;QACH,IAAI,YAAE,CAAC,UAAU,CAAC,UAAU,CAAC;YAAE,YAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IAC3D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,8CAA8C,EAAE,KAAK,CAAC,CAAC;IACtE,CAAC;AACH,CAAC","sourcesContent":["import path from \"path\";\nimport fs from \"fs\";\nimport { execSync } from \"child_process\";\nimport { getUserFileExtension } from \"../helpers/fs.helpers\";\nimport { loadEnvironmentVariables } from \"../dotenv.helpers\";\nimport { detectPackageManagerFromUserAgent } from \"../helpers/global.helpers\";\nimport sheu from \"../sheu\";\nimport watermarkStamper from \"./utils/watermark-stamper\";\nimport { removeDir } from \"../remove-dir\";\nimport { bundler } from \"../bundler\";\n\nconst BUILD_DIR = \".build\";\nconst MODULE_TYPES = [\"cjs\", \"esm\"] as const;\ntype ModuleType = (typeof MODULE_TYPES)[number];\n\ninterface BuildOptions {\n config?: string;\n module?: string;\n}\n\n/**\n * Main build function for the arkos CLI\n */\nexport function buildCommand(options: BuildOptions = {}) {\n process.env.NO_CLI = \"true\";\n const fileExt = getUserFileExtension();\n if (process.env.NODE_ENV === \"test\" || !process.env.NODE_ENV)\n process.env.NODE_ENV = \"production\";\n process.env.ARKOS_BUILD = \"true\";\n\n const envFiles = loadEnvironmentVariables();\n const moduleType = validateModuleType(options.module);\n\n try {\n watermarkStamper.stamp({\n envFiles,\n });\n\n console.info(`\\n Creating an optimized production build...`);\n\n ensureBuildDir();\n\n if (fileExt === \"ts\") buildTypeScriptProject(options, moduleType);\n else buildJavaScriptProject(options, moduleType);\n\n const packageManger = detectPackageManagerFromUserAgent();\n\n console.info(`\\n\\x1b[1m\\x1b[32m Build complete!\\x1b[0m\\n`);\n console.info(` \\x1b[1mNext step:\\x1b[0m`);\n console.info(\n ` Run it using \\x1b[1m\\x1b[36m${packageManger} run start\\x1b[0m\\n`\n );\n } catch (err: any) {\n console.info(\"\");\n sheu.error(`Build failed: ${err?.message}`);\n console.error(err);\n process.exit(1);\n }\n}\n\n/**\n * Validates and normalizes module type option\n */\nfunction validateModuleType(moduleType?: string): ModuleType {\n if (!moduleType) return \"cjs\";\n\n const normalizedType = moduleType.toLowerCase();\n\n if (normalizedType === \"cjs\" || normalizedType === \"commonjs\") return \"cjs\";\n else if ([\"esm\", \"es\", \"es2020\", \"esnext\", \"module\"].includes(normalizedType))\n return \"esm\";\n\n sheu.warn(`Unrecognized module type \"${moduleType}\", defaulting to \"cjs\"`);\n return \"cjs\";\n}\n\n/**\n * Ensure the build directory exists\n */\nfunction ensureBuildDir() {\n if (!fs.existsSync(BUILD_DIR)) fs.mkdirSync(BUILD_DIR, { recursive: true });\n\n for (const moduleType of MODULE_TYPES) {\n const moduleDir = path.join(BUILD_DIR, moduleType);\n if (!fs.existsSync(moduleDir)) {\n fs.mkdirSync(moduleDir, { recursive: true });\n }\n }\n}\n\n/**\n * Build a TypeScript project\n */\nfunction buildTypeScriptProject(options: BuildOptions, moduleType: ModuleType) {\n const tsconfigPath = path.join(\n process.cwd(),\n options.config || \"tsconfig.json\"\n );\n let tsconfig: any = {};\n\n try {\n if (fs.existsSync(tsconfigPath)) {\n const tsconfigContent = fs.readFileSync(tsconfigPath, \"utf8\");\n tsconfig = JSON.parse(tsconfigContent);\n }\n } catch (error) {\n console.error(\"❌ Error reading tsconfig.json:\", error);\n }\n\n const tempTsconfig = {\n ...tsconfig,\n compilerOptions: {\n ...(tsconfig.compilerOptions || {}),\n rootDir: \".\",\n outDir: path.join(`./${BUILD_DIR}`),\n },\n };\n\n const tempTsconfigPath = path.join(\n process.cwd(),\n `tsconfig.arkos-build.json`\n );\n fs.writeFileSync(tempTsconfigPath, JSON.stringify(tempTsconfig, null, 2));\n\n try {\n removeDir(BUILD_DIR);\n execSync(`npx tsc -p ${tempTsconfigPath}`, {\n stdio: \"inherit\",\n cwd: process.cwd(),\n });\n\n copyAllNonSourceFiles(moduleType, [\".ts\", \".tsx\"]);\n bundler.bundle({\n ext: \".js\",\n outDir: path.join(process.cwd(), BUILD_DIR),\n rootDir: process.cwd(),\n configPath: tempTsconfigPath,\n });\n\n // Clean up temp config\n cleanupTempConfig(tempTsconfigPath);\n } catch (error) {\n cleanupTempConfig(tempTsconfigPath);\n throw error;\n }\n}\n\n/**\n * Build a JavaScript project\n */\nfunction buildJavaScriptProject(_: BuildOptions, moduleType: ModuleType) {\n const targetDir = path.join(BUILD_DIR);\n\n try {\n if (moduleType === \"esm\") {\n execSync(\n `npx copyfiles -u 0 \"src/**/*.js\" \"src/**/*.jsx\" \"src/**/*.mjs\" ${targetDir}`,\n {\n stdio: \"inherit\",\n cwd: process.cwd(),\n }\n );\n\n console.info(\"Note: .cjs files are skipped in ESM build\");\n } else {\n execSync(\n `npx copyfiles -u 0 \"src/**/*.js\" \"src/**/*.jsx\" \"src/**/*.cjs\" \"src/**/*.mjs\" ${targetDir}`,\n {\n stdio: \"inherit\",\n cwd: process.cwd(),\n }\n );\n }\n\n copyAllNonSourceFiles(moduleType, [\n \".js\",\n \".jsx\",\n \".mjs\",\n \".cjs\",\n \".ts\",\n \".tsx\",\n ]);\n\n bundler.bundle({\n ext: \".js\",\n outDir: path.join(process.cwd(), BUILD_DIR),\n rootDir: process.cwd(),\n });\n // createModulePackageJson(moduleType);\n } catch (error) {\n console.error(\"❌ Error building JavaScript project:\", error);\n throw error;\n }\n}\n\n/**\n * Copy all non-source code files to the build directory\n * This function will copy everything except the specified source file extensions\n */\nfunction copyAllNonSourceFiles(_: ModuleType, skipExtensions: string[]) {\n const targetDir = path.join(BUILD_DIR);\n const sourceDir = \"src\";\n\n try {\n // Recursive function to copy files\n function copyDirRecursive(dir: string) {\n if (!fs.existsSync(dir)) return;\n\n const items = fs.readdirSync(dir);\n\n for (const item of items) {\n const sourcePath = path.join(dir, item);\n const targetPath = path.join(\n targetDir,\n dir.replace(sourceDir, \"\"),\n item\n );\n\n // Get file stats\n const stats = fs.statSync(sourcePath);\n\n if (stats.isDirectory()) {\n // Ensure target directory exists\n if (!fs.existsSync(targetPath)) {\n fs.mkdirSync(targetPath, { recursive: true });\n }\n // Recurse into subdirectory\n copyDirRecursive(sourcePath);\n } else if (stats.isFile()) {\n // Check if this is a file we should skip\n const ext = path.extname(item).toLowerCase();\n if (!skipExtensions.includes(ext)) {\n // Ensure the target directory exists\n const targetDir = path.dirname(targetPath);\n if (!fs.existsSync(targetDir)) {\n fs.mkdirSync(targetDir, { recursive: true });\n }\n // Copy the file\n fs.copyFileSync(sourcePath, targetPath);\n }\n }\n }\n }\n\n // Start copying from src directory\n copyDirRecursive(sourceDir);\n\n // Copy project root files if needed\n const rootFilesToCopy = [\"arkos.config.js\"];\n\n for (const file of rootFilesToCopy) {\n if (fs.existsSync(path.join(process.cwd(), file))) {\n fs.copyFileSync(\n path.join(process.cwd(), file),\n path.join(targetDir, file)\n );\n }\n }\n\n // console.info(`Copied all non-source files to ${targetDir}`);\n } catch (error) {\n console.warn(\"Warning: Error copying project files:\", error);\n console.error(error);\n }\n}\n\n/**\n * Clean up temporary tsconfig\n */\nfunction cleanupTempConfig(configPath: string) {\n try {\n if (fs.existsSync(configPath)) fs.unlinkSync(configPath);\n } catch (error) {\n console.warn(\"Warning: Error cleaning up temporary config:\", error);\n }\n}\n"]}
|
|
@@ -1,128 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.devCommand = devCommand;
|
|
7
|
-
exports.killDevelopmentServerChildProcess = killDevelopmentServerChildProcess;
|
|
8
|
-
const child_process_1 = require("child_process");
|
|
9
|
-
const fs_helpers_1 = require("../helpers/fs.helpers.js");
|
|
10
|
-
const dotenv_helpers_1 = require("../dotenv.helpers.js");
|
|
11
|
-
const fs_1 = __importDefault(require("fs"));
|
|
12
|
-
const path_1 = __importDefault(require("path"));
|
|
13
|
-
const sheu_1 = __importDefault(require("../sheu.js"));
|
|
14
|
-
const port_and_host_allocator_1 = __importDefault(require("../features/port-and-host-allocator.js"));
|
|
15
|
-
const watermark_stamper_1 = __importDefault(require("./utils/watermark-stamper.js"));
|
|
16
|
-
let child = null;
|
|
17
|
-
let envFiles;
|
|
18
|
-
async function devCommand(options = {}) {
|
|
19
|
-
process.env.NO_CLI = "true";
|
|
20
|
-
if (!process.env.NODE_ENV)
|
|
21
|
-
process.env.NODE_ENV = "development";
|
|
22
|
-
envFiles = (0, dotenv_helpers_1.loadEnvironmentVariables)();
|
|
23
|
-
child = null;
|
|
24
|
-
let restartTimeout = null;
|
|
25
|
-
try {
|
|
26
|
-
const { port, host } = options;
|
|
27
|
-
const fileExt = (0, fs_helpers_1.getUserFileExtension)();
|
|
28
|
-
const entryPoint = path_1.default.resolve(process.cwd(), `src/app.${fileExt}`);
|
|
29
|
-
if (!fs_1.default.existsSync(entryPoint)) {
|
|
30
|
-
console.error(`Could not find application entry point at ${entryPoint}`);
|
|
31
|
-
return process.exit(1);
|
|
32
|
-
}
|
|
33
|
-
const baseServiceTypesPath = path_1.default.resolve(process.cwd(), `node_modules/@arkosjs/generated/cjs/index.js`);
|
|
34
|
-
if (fileExt === "ts" && !fs_1.default.existsSync(baseServiceTypesPath)) {
|
|
35
|
-
const answer = await new Promise((resolve) => {
|
|
36
|
-
sheu_1.default.warn('Missing base services types please run "npx arkos prisma generate" to generate and sync the types from @prisma/client');
|
|
37
|
-
process.stdout.write(`\n${sheu_1.default.green("?", { bold: true })} Would you like to run "npx arkos prisma generate"? (Y/n): `);
|
|
38
|
-
process.stdin.once("data", (data) => {
|
|
39
|
-
const result = data.toString().trim().toLowerCase();
|
|
40
|
-
process.stdin.pause();
|
|
41
|
-
resolve(result === "y" || result.length === 0);
|
|
42
|
-
});
|
|
43
|
-
});
|
|
44
|
-
if (answer) {
|
|
45
|
-
console.info("\nSyncing base service with @prisma/client...");
|
|
46
|
-
console.log("");
|
|
47
|
-
(0, child_process_1.execSync)(`npx arkos prisma generate`);
|
|
48
|
-
}
|
|
49
|
-
else
|
|
50
|
-
throw Error('Missing BaseService types please run "npx arkos prisma generate" to generate and sync the types from @prisma/client, see more at https://www.arkosjs.com/docs/cli/arkos-cli#typescript-types-generation.');
|
|
51
|
-
}
|
|
52
|
-
const getEnv = () => ({
|
|
53
|
-
NODE_ENV: "development",
|
|
54
|
-
...process.env,
|
|
55
|
-
...(port && { CLI_PORT: port }),
|
|
56
|
-
...(host && { CLI_HOST: host }),
|
|
57
|
-
CLI: "false",
|
|
58
|
-
});
|
|
59
|
-
const env = getEnv();
|
|
60
|
-
const hostAndPort = await port_and_host_allocator_1.default.getHostAndAvailablePort(env, { logWarning: true });
|
|
61
|
-
watermark_stamper_1.default.stamp({
|
|
62
|
-
...hostAndPort,
|
|
63
|
-
envFiles,
|
|
64
|
-
});
|
|
65
|
-
process.env.__PORT = hostAndPort.port || "";
|
|
66
|
-
process.env.__HOST = hostAndPort.host || "";
|
|
67
|
-
const startServer = () => {
|
|
68
|
-
if (child) {
|
|
69
|
-
child.kill();
|
|
70
|
-
child = null;
|
|
71
|
-
}
|
|
72
|
-
const env = getEnv();
|
|
73
|
-
if (fileExt === "ts") {
|
|
74
|
-
child = (0, child_process_1.spawn)("npx", ["tsx-strict", "--watch", entryPoint], {
|
|
75
|
-
stdio: "inherit",
|
|
76
|
-
env,
|
|
77
|
-
shell: true,
|
|
78
|
-
});
|
|
79
|
-
}
|
|
80
|
-
else {
|
|
81
|
-
env.TSX_TSCONFIG_PATH = "./jsconfig.json";
|
|
82
|
-
child = (0, child_process_1.spawn)("npx", ["tsx-strict", "--no-type-check", "--watch", entryPoint], {
|
|
83
|
-
stdio: "inherit",
|
|
84
|
-
env,
|
|
85
|
-
shell: true,
|
|
86
|
-
});
|
|
87
|
-
}
|
|
88
|
-
if (child) {
|
|
89
|
-
child.on("error", (error) => {
|
|
90
|
-
console.error("Failed to start server:", error);
|
|
91
|
-
});
|
|
92
|
-
}
|
|
93
|
-
};
|
|
94
|
-
startServer();
|
|
95
|
-
const cleanup = () => {
|
|
96
|
-
if (restartTimeout)
|
|
97
|
-
clearTimeout(restartTimeout);
|
|
98
|
-
if (child) {
|
|
99
|
-
child.kill("SIGTERM");
|
|
100
|
-
setTimeout(() => {
|
|
101
|
-
if (child && !child.killed)
|
|
102
|
-
child.kill("SIGKILL");
|
|
103
|
-
}, 5000);
|
|
104
|
-
}
|
|
105
|
-
process.exit(0);
|
|
106
|
-
};
|
|
107
|
-
process.on("SIGINT", cleanup);
|
|
108
|
-
process.on("SIGTERM", cleanup);
|
|
109
|
-
process.on("uncaughtException", (error) => {
|
|
110
|
-
console.error("Uncaught Exception:", error);
|
|
111
|
-
cleanup();
|
|
112
|
-
});
|
|
113
|
-
}
|
|
114
|
-
catch (error) {
|
|
115
|
-
sheu_1.default.error("Development server failed to start:");
|
|
116
|
-
console.error(error);
|
|
117
|
-
if (child) {
|
|
118
|
-
child?.kill?.();
|
|
119
|
-
child = null;
|
|
120
|
-
}
|
|
121
|
-
process.exit(1);
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
function killDevelopmentServerChildProcess() {
|
|
125
|
-
child?.kill?.();
|
|
126
|
-
child = null;
|
|
127
|
-
}
|
|
128
|
-
//# sourceMappingURL=dev.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dev.js","sourceRoot":"","sources":["../../../../src/utils/cli/dev.ts"],"names":[],"mappings":"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","sourcesContent":["import { spawn, ChildProcess, execSync } from \"child_process\";\nimport { getUserFileExtension } from \"../helpers/fs.helpers\";\nimport { loadEnvironmentVariables } from \"../dotenv.helpers\";\nimport fs from \"fs\";\nimport path from \"path\";\nimport sheu from \"../sheu\";\nimport portAndHostAllocator from \"../features/port-and-host-allocator\";\nimport watermarkStamper from \"./utils/watermark-stamper\";\n\ninterface DevOptions {\n port?: string;\n host?: string;\n}\n\nlet child: ChildProcess | null = null;\nlet envFiles: string[] | undefined;\n\n/**\n * Dev server command for the arkos CLI\n */\nexport async function devCommand(options: DevOptions = {}) {\n process.env.NO_CLI = \"true\";\n\n if (!process.env.NODE_ENV) process.env.NODE_ENV = \"development\";\n envFiles = loadEnvironmentVariables();\n child = null;\n let restartTimeout: NodeJS.Timeout | null = null;\n\n try {\n const { port, host } = options;\n\n const fileExt = getUserFileExtension();\n const entryPoint = path.resolve(process.cwd(), `src/app.${fileExt}`);\n\n if (!fs.existsSync(entryPoint)) {\n console.error(`Could not find application entry point at ${entryPoint}`);\n return process.exit(1);\n }\n\n const baseServiceTypesPath = path.resolve(\n process.cwd(),\n `node_modules/@arkosjs/generated/cjs/index.js`\n );\n if (fileExt === \"ts\" && !fs.existsSync(baseServiceTypesPath)) {\n const answer = await new Promise<boolean>((resolve) => {\n sheu.warn(\n 'Missing base services types please run \"npx arkos prisma generate\" to generate and sync the types from @prisma/client'\n );\n process.stdout.write(\n `\\n${sheu.green(\"?\", { bold: true })} Would you like to run \"npx arkos prisma generate\"? (Y/n): `\n );\n process.stdin.once(\"data\", (data) => {\n const result = data.toString().trim().toLowerCase();\n process.stdin.pause();\n resolve(result === \"y\" || result.length === 0);\n });\n });\n\n if (answer) {\n console.info(\"\\nSyncing base service with @prisma/client...\");\n console.log(\"\");\n execSync(`npx arkos prisma generate`);\n } else\n throw Error(\n 'Missing BaseService types please run \"npx arkos prisma generate\" to generate and sync the types from @prisma/client, see more at https://www.arkosjs.com/docs/cli/arkos-cli#typescript-types-generation.'\n );\n }\n\n const getEnv = () =>\n ({\n NODE_ENV: \"development\",\n ...process.env,\n ...(port && { CLI_PORT: port }),\n ...(host && { CLI_HOST: host }),\n CLI: \"false\",\n }) as { [x: string]: string };\n\n const env = getEnv();\n const hostAndPort = await portAndHostAllocator.getHostAndAvailablePort(\n env,\n { logWarning: true }\n );\n\n watermarkStamper.stamp({\n ...hostAndPort,\n envFiles,\n });\n\n process.env.__PORT = hostAndPort.port || \"\";\n process.env.__HOST = hostAndPort.host || \"\";\n\n const startServer = () => {\n if (child) {\n child.kill();\n child = null;\n }\n\n const env = getEnv();\n\n if (fileExt === \"ts\") {\n child = spawn(\"npx\", [\"tsx-strict\", \"--watch\", entryPoint], {\n stdio: \"inherit\",\n env,\n shell: true,\n });\n } else {\n env.TSX_TSCONFIG_PATH = \"./jsconfig.json\";\n child = spawn(\n \"npx\",\n [\"tsx-strict\", \"--no-type-check\", \"--watch\", entryPoint],\n {\n stdio: \"inherit\",\n env,\n shell: true,\n }\n );\n }\n\n if (child) {\n child.on(\"error\", (error) => {\n console.error(\"Failed to start server:\", error);\n });\n }\n };\n\n startServer();\n\n const cleanup = () => {\n if (restartTimeout) clearTimeout(restartTimeout);\n\n if (child) {\n child.kill(\"SIGTERM\");\n\n setTimeout(() => {\n if (child && !child.killed) child.kill(\"SIGKILL\");\n }, 5000);\n }\n\n process.exit(0);\n };\n\n process.on(\"SIGINT\", cleanup);\n process.on(\"SIGTERM\", cleanup);\n\n process.on(\"uncaughtException\", (error) => {\n console.error(\"Uncaught Exception:\", error);\n cleanup();\n });\n } catch (error) {\n sheu.error(\"Development server failed to start:\");\n console.error(error);\n\n if (child) {\n (child as ChildProcess)?.kill?.();\n child = null;\n }\n\n process.exit(1);\n }\n}\n\n/**\n * Help function to help other processes to terminate the development server child process\n */\nexport function killDevelopmentServerChildProcess() {\n (child as ChildProcess)?.kill?.();\n child = null;\n}\n"]}
|