@sentzunhat/zacatl 0.0.14 → 0.0.21
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 +292 -207
- package/build/architecture/index.d.ts +2 -0
- package/build/architecture/index.d.ts.map +1 -0
- package/build/architecture/index.js +2 -0
- package/build/architecture/index.js.map +1 -0
- package/build/configuration/app-config.d.ts +10 -0
- package/build/configuration/app-config.d.ts.map +1 -0
- package/build/configuration/app-config.js +5 -0
- package/build/configuration/app-config.js.map +1 -0
- package/build/configuration/index.d.ts +7 -0
- package/build/configuration/index.d.ts.map +1 -0
- package/build/configuration/index.js +6 -0
- package/build/configuration/index.js.map +1 -0
- package/build/configuration/legacy.d.ts +10 -0
- package/build/configuration/legacy.d.ts.map +1 -0
- package/build/configuration/legacy.js +5 -0
- package/build/configuration/legacy.js.map +1 -0
- package/build/configuration/loader-factory.d.ts +2 -0
- package/build/configuration/loader-factory.d.ts.map +1 -0
- package/build/configuration/loader-factory.js +2 -0
- package/build/configuration/loader-factory.js.map +1 -0
- package/build/configuration/loader.d.ts +9 -0
- package/build/configuration/loader.d.ts.map +1 -0
- package/build/configuration/loader.js +38 -0
- package/build/configuration/loader.js.map +1 -0
- package/build/configuration/loaders/index.d.ts +3 -0
- package/build/configuration/loaders/index.d.ts.map +1 -0
- package/build/configuration/loaders/index.js +3 -0
- package/build/configuration/loaders/index.js.map +1 -0
- package/build/configuration/loaders/json-loader.d.ts +8 -0
- package/build/configuration/loaders/json-loader.d.ts.map +1 -0
- package/build/configuration/loaders/json-loader.js +18 -0
- package/build/configuration/loaders/json-loader.js.map +1 -0
- package/build/configuration/loaders/yaml-loader.d.ts +8 -0
- package/build/configuration/loaders/yaml-loader.d.ts.map +1 -0
- package/build/configuration/loaders/yaml-loader.js +20 -0
- package/build/configuration/loaders/yaml-loader.js.map +1 -0
- package/build/configuration/types.d.ts +12 -0
- package/build/configuration/types.d.ts.map +1 -0
- package/build/configuration/types.js +2 -0
- package/build/configuration/types.js.map +1 -0
- package/build/configuration/validation.d.ts +14 -0
- package/build/configuration/validation.d.ts.map +1 -0
- package/build/configuration/validation.js +22 -0
- package/build/configuration/validation.js.map +1 -0
- package/build/configuration.d.ts +2 -0
- package/build/configuration.d.ts.map +1 -0
- package/build/configuration.js +2 -0
- package/build/configuration.js.map +1 -0
- package/build/dependency-injection/container.d.ts +9 -0
- package/build/dependency-injection/container.d.ts.map +1 -0
- package/build/dependency-injection/container.js +22 -0
- package/build/dependency-injection/container.js.map +1 -0
- package/build/dependency-injection/index.d.ts +2 -0
- package/build/dependency-injection/index.d.ts.map +1 -0
- package/build/dependency-injection/index.js +2 -0
- package/build/dependency-injection/index.js.map +1 -0
- package/build/error/bad-request.d.ts +7 -0
- package/build/error/bad-request.d.ts.map +1 -0
- package/build/error/bad-request.js +13 -0
- package/build/error/bad-request.js.map +1 -0
- package/build/error/bad-resource.d.ts +7 -0
- package/build/error/bad-resource.d.ts.map +1 -0
- package/build/error/bad-resource.js +13 -0
- package/build/error/bad-resource.js.map +1 -0
- package/build/error/custom.d.ts +49 -0
- package/build/error/custom.d.ts.map +1 -0
- package/build/error/custom.js +65 -0
- package/build/error/custom.js.map +1 -0
- package/build/error/forbidden.d.ts +7 -0
- package/build/error/forbidden.d.ts.map +1 -0
- package/build/error/forbidden.js +13 -0
- package/build/error/forbidden.js.map +1 -0
- package/build/error/index.d.ts +9 -0
- package/build/error/index.d.ts.map +1 -0
- package/build/error/index.js +9 -0
- package/build/error/index.js.map +1 -0
- package/build/error/internal-server.d.ts +7 -0
- package/build/error/internal-server.d.ts.map +1 -0
- package/build/error/internal-server.js +13 -0
- package/build/error/internal-server.js.map +1 -0
- package/build/error/not-found.d.ts +7 -0
- package/build/error/not-found.d.ts.map +1 -0
- package/build/error/not-found.js +13 -0
- package/build/error/not-found.js.map +1 -0
- package/build/error/unauthorized.d.ts +7 -0
- package/build/error/unauthorized.d.ts.map +1 -0
- package/build/error/unauthorized.js +13 -0
- package/build/error/unauthorized.js.map +1 -0
- package/build/error/validation.d.ts +7 -0
- package/build/error/validation.d.ts.map +1 -0
- package/build/error/validation.js +13 -0
- package/build/error/validation.js.map +1 -0
- package/build/examples/index.d.ts +3 -0
- package/build/examples/index.d.ts.map +1 -0
- package/build/examples/index.js +3 -0
- package/build/examples/index.js.map +1 -0
- package/build/examples/providers/file-system-provider.d.ts +13 -0
- package/build/examples/providers/file-system-provider.d.ts.map +1 -0
- package/build/examples/providers/file-system-provider.js +82 -0
- package/build/examples/providers/file-system-provider.js.map +1 -0
- package/build/examples/providers/filesystem-provider.d.ts +15 -0
- package/build/examples/providers/filesystem-provider.d.ts.map +1 -0
- package/build/examples/providers/filesystem-provider.js +139 -0
- package/build/examples/providers/filesystem-provider.js.map +1 -0
- package/build/examples/providers/index.d.ts +6 -0
- package/build/examples/providers/index.d.ts.map +1 -0
- package/build/examples/providers/index.js +4 -0
- package/build/examples/providers/index.js.map +1 -0
- package/build/examples/providers/process-provider.d.ts +19 -0
- package/build/examples/providers/process-provider.d.ts.map +1 -0
- package/build/examples/providers/process-provider.js +101 -0
- package/build/examples/providers/process-provider.js.map +1 -0
- package/build/examples/repositories/index.d.ts +3 -0
- package/build/examples/repositories/index.d.ts.map +1 -0
- package/build/examples/repositories/index.js +3 -0
- package/build/examples/repositories/index.js.map +1 -0
- package/build/examples/repositories/sqlite-repository.d.ts +14 -0
- package/build/examples/repositories/sqlite-repository.d.ts.map +1 -0
- package/build/examples/repositories/sqlite-repository.js +111 -0
- package/build/examples/repositories/sqlite-repository.js.map +1 -0
- package/build/i18n/adapters/index.d.ts +15 -0
- package/build/i18n/adapters/index.d.ts.map +1 -0
- package/build/i18n/adapters/index.js +46 -0
- package/build/i18n/adapters/index.js.map +1 -0
- package/build/i18n/i18n.d.ts +6 -0
- package/build/i18n/i18n.d.ts.map +1 -0
- package/build/i18n/i18n.js +118 -0
- package/build/i18n/i18n.js.map +1 -0
- package/build/i18n/index.d.ts +5 -0
- package/build/i18n/index.d.ts.map +1 -0
- package/build/i18n/index.js +4 -0
- package/build/i18n/index.js.map +1 -0
- package/build/i18n/types.d.ts +22 -0
- package/build/i18n/types.d.ts.map +1 -0
- package/build/i18n/types.js +2 -0
- package/build/i18n/types.js.map +1 -0
- package/build/i18n/validation.d.ts +16 -0
- package/build/i18n/validation.d.ts.map +1 -0
- package/build/i18n/validation.js +23 -0
- package/build/i18n/validation.js.map +1 -0
- package/build/index.d.ts +20 -0
- package/build/index.d.ts.map +1 -0
- package/build/index.js +16 -0
- package/build/index.js.map +1 -0
- package/build/intl/adapters/index.d.ts +15 -0
- package/build/intl/adapters/index.d.ts.map +1 -0
- package/build/intl/adapters/index.js +46 -0
- package/build/intl/adapters/index.js.map +1 -0
- package/build/intl/index.d.ts +5 -0
- package/build/intl/index.d.ts.map +1 -0
- package/build/intl/index.js +4 -0
- package/build/intl/index.js.map +1 -0
- package/build/intl/intl.d.ts +6 -0
- package/build/intl/intl.d.ts.map +1 -0
- package/build/intl/intl.js +118 -0
- package/build/intl/intl.js.map +1 -0
- package/build/intl/types.d.ts +22 -0
- package/build/intl/types.d.ts.map +1 -0
- package/build/intl/types.js +2 -0
- package/build/intl/types.js.map +1 -0
- package/build/intl/validation.d.ts +16 -0
- package/build/intl/validation.d.ts.map +1 -0
- package/build/intl/validation.js +23 -0
- package/build/intl/validation.js.map +1 -0
- package/build/localization/adapters/index.d.ts +15 -0
- package/build/localization/adapters/index.d.ts.map +1 -0
- package/build/localization/adapters/index.js +46 -0
- package/build/localization/adapters/index.js.map +1 -0
- package/build/localization/i18n.d.ts +6 -0
- package/build/localization/i18n.d.ts.map +1 -0
- package/build/localization/i18n.js +118 -0
- package/build/localization/i18n.js.map +1 -0
- package/build/localization/index.d.ts +5 -0
- package/build/localization/index.d.ts.map +1 -0
- package/build/localization/index.js +4 -0
- package/build/localization/index.js.map +1 -0
- package/build/localization/intl.d.ts +6 -0
- package/build/localization/intl.d.ts.map +1 -0
- package/build/localization/intl.js +120 -0
- package/build/localization/intl.js.map +1 -0
- package/build/localization/localization.d.ts +6 -0
- package/build/localization/localization.d.ts.map +1 -0
- package/build/localization/localization.js +120 -0
- package/build/localization/localization.js.map +1 -0
- package/build/localization/types.d.ts +22 -0
- package/build/localization/types.d.ts.map +1 -0
- package/build/localization/types.js +2 -0
- package/build/localization/types.js.map +1 -0
- package/build/localization/validation.d.ts +16 -0
- package/build/localization/validation.d.ts.map +1 -0
- package/build/localization/validation.js +23 -0
- package/build/localization/validation.js.map +1 -0
- package/build/logs/adapters/console-adapter.d.ts +18 -0
- package/build/logs/adapters/console-adapter.d.ts.map +1 -0
- package/build/logs/adapters/console-adapter.js +65 -0
- package/build/logs/adapters/console-adapter.js.map +1 -0
- package/build/logs/adapters/pino-adapter.d.ts +14 -0
- package/build/logs/adapters/pino-adapter.d.ts.map +1 -0
- package/build/logs/adapters/pino-adapter.js +30 -0
- package/build/logs/adapters/pino-adapter.js.map +1 -0
- package/build/logs/config.d.ts +9 -0
- package/build/logs/config.d.ts.map +1 -0
- package/build/logs/config.js +34 -0
- package/build/logs/config.js.map +1 -0
- package/build/logs/index.d.ts +6 -0
- package/build/logs/index.d.ts.map +1 -0
- package/build/logs/index.js +5 -0
- package/build/logs/index.js.map +1 -0
- package/build/logs/logger.d.ts +4 -0
- package/build/logs/logger.d.ts.map +1 -0
- package/build/logs/logger.js +14 -0
- package/build/logs/logger.js.map +1 -0
- package/build/logs/types.d.ts +23 -0
- package/build/logs/types.d.ts.map +1 -0
- package/build/logs/types.js +2 -0
- package/build/logs/types.js.map +1 -0
- package/build/logs.d.ts +4 -0
- package/build/logs.d.ts.map +1 -0
- package/build/logs.js +3 -0
- package/build/logs.js.map +1 -0
- package/build/micro-service/architecture/application/application.d.ts +22 -0
- package/build/micro-service/architecture/application/application.d.ts.map +1 -0
- package/build/micro-service/architecture/application/application.js +25 -0
- package/build/micro-service/architecture/application/application.js.map +1 -0
- package/build/micro-service/architecture/application/entry-points/index.d.ts +2 -0
- package/build/micro-service/architecture/application/entry-points/index.d.ts.map +1 -0
- package/build/micro-service/architecture/application/entry-points/index.js +2 -0
- package/build/micro-service/architecture/application/entry-points/index.js.map +1 -0
- package/build/micro-service/architecture/application/entry-points/rest/common/handler.d.ts +4 -0
- package/build/micro-service/architecture/application/entry-points/rest/common/handler.d.ts.map +1 -0
- package/build/micro-service/architecture/application/entry-points/rest/common/handler.js +2 -0
- package/build/micro-service/architecture/application/entry-points/rest/common/handler.js.map +1 -0
- package/build/micro-service/architecture/application/entry-points/rest/common/index.d.ts +3 -0
- package/build/micro-service/architecture/application/entry-points/rest/common/index.d.ts.map +1 -0
- package/build/micro-service/architecture/application/entry-points/rest/common/index.js +3 -0
- package/build/micro-service/architecture/application/entry-points/rest/common/index.js.map +1 -0
- package/build/micro-service/architecture/application/entry-points/rest/common/request.d.ts +9 -0
- package/build/micro-service/architecture/application/entry-points/rest/common/request.d.ts.map +1 -0
- package/build/micro-service/architecture/application/entry-points/rest/common/request.js +2 -0
- package/build/micro-service/architecture/application/entry-points/rest/common/request.js.map +1 -0
- package/build/micro-service/architecture/application/entry-points/rest/hook-handlers/hook-handler.d.ts +7 -0
- package/build/micro-service/architecture/application/entry-points/rest/hook-handlers/hook-handler.d.ts.map +1 -0
- package/build/micro-service/architecture/application/entry-points/rest/hook-handlers/hook-handler.js +2 -0
- package/build/micro-service/architecture/application/entry-points/rest/hook-handlers/hook-handler.js.map +1 -0
- package/build/micro-service/architecture/application/entry-points/rest/hook-handlers/index.d.ts +2 -0
- package/build/micro-service/architecture/application/entry-points/rest/hook-handlers/index.d.ts.map +1 -0
- package/build/micro-service/architecture/application/entry-points/rest/hook-handlers/index.js +2 -0
- package/build/micro-service/architecture/application/entry-points/rest/hook-handlers/index.js.map +1 -0
- package/build/micro-service/architecture/application/entry-points/rest/index.d.ts +4 -0
- package/build/micro-service/architecture/application/entry-points/rest/index.d.ts.map +1 -0
- package/build/micro-service/architecture/application/entry-points/rest/index.js +4 -0
- package/build/micro-service/architecture/application/entry-points/rest/index.js.map +1 -0
- package/build/micro-service/architecture/application/entry-points/rest/route-handlers/abstract.d.ts +26 -0
- package/build/micro-service/architecture/application/entry-points/rest/route-handlers/abstract.d.ts.map +1 -0
- package/build/micro-service/architecture/application/entry-points/rest/route-handlers/abstract.js +21 -0
- package/build/micro-service/architecture/application/entry-points/rest/route-handlers/abstract.js.map +1 -0
- package/build/micro-service/architecture/application/entry-points/rest/route-handlers/generics.d.ts +8 -0
- package/build/micro-service/architecture/application/entry-points/rest/route-handlers/generics.d.ts.map +1 -0
- package/build/micro-service/architecture/application/entry-points/rest/route-handlers/generics.js +10 -0
- package/build/micro-service/architecture/application/entry-points/rest/route-handlers/generics.js.map +1 -0
- package/build/micro-service/architecture/application/entry-points/rest/route-handlers/get-route-handler.d.ts +10 -0
- package/build/micro-service/architecture/application/entry-points/rest/route-handlers/get-route-handler.d.ts.map +1 -0
- package/build/micro-service/architecture/application/entry-points/rest/route-handlers/get-route-handler.js +11 -0
- package/build/micro-service/architecture/application/entry-points/rest/route-handlers/get-route-handler.js.map +1 -0
- package/build/micro-service/architecture/application/entry-points/rest/route-handlers/index.d.ts +6 -0
- package/build/micro-service/architecture/application/entry-points/rest/route-handlers/index.d.ts.map +1 -0
- package/build/micro-service/architecture/application/entry-points/rest/route-handlers/index.js +6 -0
- package/build/micro-service/architecture/application/entry-points/rest/route-handlers/index.js.map +1 -0
- package/build/micro-service/architecture/application/entry-points/rest/route-handlers/post-route-handler.d.ts +10 -0
- package/build/micro-service/architecture/application/entry-points/rest/route-handlers/post-route-handler.d.ts.map +1 -0
- package/build/micro-service/architecture/application/entry-points/rest/route-handlers/post-route-handler.js +11 -0
- package/build/micro-service/architecture/application/entry-points/rest/route-handlers/post-route-handler.js.map +1 -0
- package/build/micro-service/architecture/application/entry-points/rest/route-handlers/route-handler.d.ts +9 -0
- package/build/micro-service/architecture/application/entry-points/rest/route-handlers/route-handler.d.ts.map +1 -0
- package/build/micro-service/architecture/application/entry-points/rest/route-handlers/route-handler.js +2 -0
- package/build/micro-service/architecture/application/entry-points/rest/route-handlers/route-handler.js.map +1 -0
- package/build/micro-service/architecture/application/index.d.ts +3 -0
- package/build/micro-service/architecture/application/index.d.ts.map +1 -0
- package/build/micro-service/architecture/application/index.js +3 -0
- package/build/micro-service/architecture/application/index.js.map +1 -0
- package/build/micro-service/architecture/architecture.d.ts +11 -0
- package/build/micro-service/architecture/architecture.d.ts.map +1 -0
- package/build/micro-service/architecture/architecture.js +20 -0
- package/build/micro-service/architecture/architecture.js.map +1 -0
- package/build/micro-service/architecture/domain/domain.d.ts +11 -0
- package/build/micro-service/architecture/domain/domain.d.ts.map +1 -0
- package/build/micro-service/architecture/domain/domain.js +25 -0
- package/build/micro-service/architecture/domain/domain.js.map +1 -0
- package/build/micro-service/architecture/domain/index.d.ts +3 -0
- package/build/micro-service/architecture/domain/index.d.ts.map +1 -0
- package/build/micro-service/architecture/domain/index.js +3 -0
- package/build/micro-service/architecture/domain/index.js.map +1 -0
- package/build/micro-service/architecture/domain/provider.d.ts +6 -0
- package/build/micro-service/architecture/domain/provider.d.ts.map +1 -0
- package/build/micro-service/architecture/domain/provider.js +7 -0
- package/build/micro-service/architecture/domain/provider.js.map +1 -0
- package/build/micro-service/architecture/index.d.ts +6 -0
- package/build/micro-service/architecture/index.d.ts.map +1 -0
- package/build/micro-service/architecture/index.js +6 -0
- package/build/micro-service/architecture/index.js.map +1 -0
- package/build/micro-service/architecture/infrastructure/index.d.ts +3 -0
- package/build/micro-service/architecture/infrastructure/index.d.ts.map +1 -0
- package/{src/micro-service/architecture/infrastructure/index.ts → build/micro-service/architecture/infrastructure/index.js} +1 -0
- package/build/micro-service/architecture/infrastructure/index.js.map +1 -0
- package/build/micro-service/architecture/infrastructure/infrastructure.d.ts +10 -0
- package/build/micro-service/architecture/infrastructure/infrastructure.d.ts.map +1 -0
- package/build/micro-service/architecture/infrastructure/infrastructure.js +12 -0
- package/build/micro-service/architecture/infrastructure/infrastructure.js.map +1 -0
- package/build/micro-service/architecture/infrastructure/orm/adapters/mongoose-adapter.d.ts +13 -0
- package/build/micro-service/architecture/infrastructure/orm/adapters/mongoose-adapter.d.ts.map +1 -0
- package/build/micro-service/architecture/infrastructure/orm/adapters/mongoose-adapter.js +92 -0
- package/build/micro-service/architecture/infrastructure/orm/adapters/mongoose-adapter.js.map +1 -0
- package/build/micro-service/architecture/infrastructure/orm/adapters/sequelize-adapter.d.ts +12 -0
- package/build/micro-service/architecture/infrastructure/orm/adapters/sequelize-adapter.d.ts.map +1 -0
- package/build/micro-service/architecture/infrastructure/orm/adapters/sequelize-adapter.js +49 -0
- package/build/micro-service/architecture/infrastructure/orm/adapters/sequelize-adapter.js.map +1 -0
- package/build/micro-service/architecture/infrastructure/orm/index.d.ts +3 -0
- package/build/micro-service/architecture/infrastructure/orm/index.d.ts.map +1 -0
- package/build/micro-service/architecture/infrastructure/orm/index.js +3 -0
- package/build/micro-service/architecture/infrastructure/orm/index.js.map +1 -0
- package/build/micro-service/architecture/infrastructure/repositories/abstract.d.ts +19 -0
- package/build/micro-service/architecture/infrastructure/repositories/abstract.d.ts.map +1 -0
- package/build/micro-service/architecture/infrastructure/repositories/abstract.js +64 -0
- package/build/micro-service/architecture/infrastructure/repositories/abstract.js.map +1 -0
- package/build/micro-service/architecture/infrastructure/repositories/index.d.ts +2 -0
- package/build/micro-service/architecture/infrastructure/repositories/index.d.ts.map +1 -0
- package/build/micro-service/architecture/infrastructure/repositories/index.js +2 -0
- package/build/micro-service/architecture/infrastructure/repositories/index.js.map +1 -0
- package/build/micro-service/architecture/infrastructure/repositories/mongoose.d.ts +13 -0
- package/build/micro-service/architecture/infrastructure/repositories/mongoose.d.ts.map +1 -0
- package/build/micro-service/architecture/infrastructure/repositories/mongoose.js +92 -0
- package/build/micro-service/architecture/infrastructure/repositories/mongoose.js.map +1 -0
- package/build/micro-service/architecture/infrastructure/repositories/sequelize.d.ts +12 -0
- package/build/micro-service/architecture/infrastructure/repositories/sequelize.d.ts.map +1 -0
- package/build/micro-service/architecture/infrastructure/repositories/sequelize.js +49 -0
- package/build/micro-service/architecture/infrastructure/repositories/sequelize.js.map +1 -0
- package/build/micro-service/architecture/infrastructure/repositories/types.d.ts +43 -0
- package/build/micro-service/architecture/infrastructure/repositories/types.d.ts.map +1 -0
- package/build/micro-service/architecture/infrastructure/repositories/types.js +2 -0
- package/build/micro-service/architecture/infrastructure/repositories/types.js.map +1 -0
- package/build/micro-service/architecture/infrastructure/repository-interface.d.ts +9 -0
- package/build/micro-service/architecture/infrastructure/repository-interface.d.ts.map +1 -0
- package/build/micro-service/architecture/infrastructure/repository-interface.js +2 -0
- package/build/micro-service/architecture/infrastructure/repository-interface.js.map +1 -0
- package/build/micro-service/architecture/infrastructure/repository.d.ts +9 -0
- package/build/micro-service/architecture/infrastructure/repository.d.ts.map +1 -0
- package/build/micro-service/architecture/infrastructure/repository.js +2 -0
- package/build/micro-service/architecture/infrastructure/repository.js.map +1 -0
- package/build/micro-service/architecture/platform/index.d.ts +6 -0
- package/build/micro-service/architecture/platform/index.d.ts.map +1 -0
- package/build/micro-service/architecture/platform/index.js +5 -0
- package/build/micro-service/architecture/platform/index.js.map +1 -0
- package/build/micro-service/architecture/platform/micro-service.d.ts +24 -0
- package/build/micro-service/architecture/platform/micro-service.d.ts.map +1 -0
- package/build/micro-service/architecture/platform/micro-service.js +40 -0
- package/build/micro-service/architecture/platform/micro-service.js.map +1 -0
- package/build/micro-service/architecture/platform/page/index.d.ts +2 -0
- package/build/micro-service/architecture/platform/page/index.d.ts.map +1 -0
- package/build/micro-service/architecture/platform/page/index.js +2 -0
- package/build/micro-service/architecture/platform/page/index.js.map +1 -0
- package/build/micro-service/architecture/platform/page/page.d.ts +16 -0
- package/build/micro-service/architecture/platform/page/page.d.ts.map +1 -0
- package/build/micro-service/architecture/platform/page/page.js +38 -0
- package/build/micro-service/architecture/platform/page/page.js.map +1 -0
- package/build/micro-service/architecture/platform/server/adapters/express-adapter.d.ts +15 -0
- package/build/micro-service/architecture/platform/server/adapters/express-adapter.d.ts.map +1 -0
- package/build/micro-service/architecture/platform/server/adapters/express-adapter.js +91 -0
- package/build/micro-service/architecture/platform/server/adapters/express-adapter.js.map +1 -0
- package/build/micro-service/architecture/platform/server/adapters/fastify-adapter.d.ts +15 -0
- package/build/micro-service/architecture/platform/server/adapters/fastify-adapter.d.ts.map +1 -0
- package/build/micro-service/architecture/platform/server/adapters/fastify-adapter.js +54 -0
- package/build/micro-service/architecture/platform/server/adapters/fastify-adapter.js.map +1 -0
- package/build/micro-service/architecture/platform/server/adapters/index.d.ts +3 -0
- package/build/micro-service/architecture/platform/server/adapters/index.d.ts.map +1 -0
- package/build/micro-service/architecture/platform/server/adapters/index.js +3 -0
- package/build/micro-service/architecture/platform/server/adapters/index.js.map +1 -0
- package/build/micro-service/architecture/platform/server/index.d.ts +2 -0
- package/build/micro-service/architecture/platform/server/index.d.ts.map +1 -0
- package/build/micro-service/architecture/platform/server/index.js +2 -0
- package/build/micro-service/architecture/platform/server/index.js.map +1 -0
- package/build/micro-service/architecture/platform/server/server-adapter.d.ts +21 -0
- package/build/micro-service/architecture/platform/server/server-adapter.d.ts.map +1 -0
- package/build/micro-service/architecture/platform/server/server-adapter.js +2 -0
- package/build/micro-service/architecture/platform/server/server-adapter.js.map +1 -0
- package/build/micro-service/architecture/platform/server/server.d.ts +97 -0
- package/build/micro-service/architecture/platform/server/server.d.ts.map +1 -0
- package/build/micro-service/architecture/platform/server/server.js +219 -0
- package/build/micro-service/architecture/platform/server/server.js.map +1 -0
- package/build/micro-service/index.d.ts +2 -0
- package/build/micro-service/index.d.ts.map +1 -0
- package/build/micro-service/index.js +2 -0
- package/build/micro-service/index.js.map +1 -0
- package/build/optionals.d.ts +4 -0
- package/build/optionals.d.ts.map +1 -0
- package/build/optionals.js +2 -0
- package/build/optionals.js.map +1 -0
- package/build/orm-exports.d.ts +5 -0
- package/build/orm-exports.d.ts.map +1 -0
- package/build/orm-exports.js +3 -0
- package/build/orm-exports.js.map +1 -0
- package/build/runtime/detector.d.ts +7 -0
- package/build/runtime/detector.d.ts.map +1 -0
- package/build/runtime/detector.js +28 -0
- package/build/runtime/detector.js.map +1 -0
- package/build/runtime/index.d.ts +3 -0
- package/build/runtime/index.d.ts.map +1 -0
- package/build/runtime/index.js +3 -0
- package/build/runtime/index.js.map +1 -0
- package/build/runtime/types.d.ts +8 -0
- package/build/runtime/types.d.ts.map +1 -0
- package/build/runtime/types.js +2 -0
- package/build/runtime/types.js.map +1 -0
- package/build/service/architecture/application/application.d.ts +22 -0
- package/build/service/architecture/application/application.d.ts.map +1 -0
- package/build/service/architecture/application/application.js +25 -0
- package/build/service/architecture/application/application.js.map +1 -0
- package/build/service/architecture/application/entry-points/index.d.ts +2 -0
- package/build/service/architecture/application/entry-points/index.d.ts.map +1 -0
- package/build/service/architecture/application/entry-points/index.js +2 -0
- package/build/service/architecture/application/entry-points/index.js.map +1 -0
- package/build/service/architecture/application/entry-points/rest/common/handler.d.ts +4 -0
- package/build/service/architecture/application/entry-points/rest/common/handler.d.ts.map +1 -0
- package/build/service/architecture/application/entry-points/rest/common/handler.js +2 -0
- package/build/service/architecture/application/entry-points/rest/common/handler.js.map +1 -0
- package/build/service/architecture/application/entry-points/rest/common/index.d.ts +3 -0
- package/build/service/architecture/application/entry-points/rest/common/index.d.ts.map +1 -0
- package/build/service/architecture/application/entry-points/rest/common/index.js +3 -0
- package/build/service/architecture/application/entry-points/rest/common/index.js.map +1 -0
- package/build/service/architecture/application/entry-points/rest/common/request.d.ts +9 -0
- package/build/service/architecture/application/entry-points/rest/common/request.d.ts.map +1 -0
- package/build/service/architecture/application/entry-points/rest/common/request.js +2 -0
- package/build/service/architecture/application/entry-points/rest/common/request.js.map +1 -0
- package/build/service/architecture/application/entry-points/rest/hook-handlers/hook-handler.d.ts +7 -0
- package/build/service/architecture/application/entry-points/rest/hook-handlers/hook-handler.d.ts.map +1 -0
- package/build/service/architecture/application/entry-points/rest/hook-handlers/hook-handler.js +2 -0
- package/build/service/architecture/application/entry-points/rest/hook-handlers/hook-handler.js.map +1 -0
- package/build/service/architecture/application/entry-points/rest/hook-handlers/index.d.ts +2 -0
- package/build/service/architecture/application/entry-points/rest/hook-handlers/index.d.ts.map +1 -0
- package/build/service/architecture/application/entry-points/rest/hook-handlers/index.js +2 -0
- package/build/service/architecture/application/entry-points/rest/hook-handlers/index.js.map +1 -0
- package/build/service/architecture/application/entry-points/rest/index.d.ts +4 -0
- package/build/service/architecture/application/entry-points/rest/index.d.ts.map +1 -0
- package/build/service/architecture/application/entry-points/rest/index.js +4 -0
- package/build/service/architecture/application/entry-points/rest/index.js.map +1 -0
- package/build/service/architecture/application/entry-points/rest/route-handlers/abstract.d.ts +27 -0
- package/build/service/architecture/application/entry-points/rest/route-handlers/abstract.d.ts.map +1 -0
- package/build/service/architecture/application/entry-points/rest/route-handlers/abstract.js +21 -0
- package/build/service/architecture/application/entry-points/rest/route-handlers/abstract.js.map +1 -0
- package/build/service/architecture/application/entry-points/rest/route-handlers/generics.d.ts +8 -0
- package/build/service/architecture/application/entry-points/rest/route-handlers/generics.d.ts.map +1 -0
- package/build/service/architecture/application/entry-points/rest/route-handlers/generics.js +10 -0
- package/build/service/architecture/application/entry-points/rest/route-handlers/generics.js.map +1 -0
- package/build/service/architecture/application/entry-points/rest/route-handlers/get-route-handler.d.ts +10 -0
- package/build/service/architecture/application/entry-points/rest/route-handlers/get-route-handler.d.ts.map +1 -0
- package/build/service/architecture/application/entry-points/rest/route-handlers/get-route-handler.js +11 -0
- package/build/service/architecture/application/entry-points/rest/route-handlers/get-route-handler.js.map +1 -0
- package/build/service/architecture/application/entry-points/rest/route-handlers/index.d.ts +6 -0
- package/build/service/architecture/application/entry-points/rest/route-handlers/index.d.ts.map +1 -0
- package/build/service/architecture/application/entry-points/rest/route-handlers/index.js +6 -0
- package/build/service/architecture/application/entry-points/rest/route-handlers/index.js.map +1 -0
- package/build/service/architecture/application/entry-points/rest/route-handlers/post-route-handler.d.ts +11 -0
- package/build/service/architecture/application/entry-points/rest/route-handlers/post-route-handler.d.ts.map +1 -0
- package/build/service/architecture/application/entry-points/rest/route-handlers/post-route-handler.js +11 -0
- package/build/service/architecture/application/entry-points/rest/route-handlers/post-route-handler.js.map +1 -0
- package/build/service/architecture/application/entry-points/rest/route-handlers/route-handler.d.ts +9 -0
- package/build/service/architecture/application/entry-points/rest/route-handlers/route-handler.d.ts.map +1 -0
- package/build/service/architecture/application/entry-points/rest/route-handlers/route-handler.js +2 -0
- package/build/service/architecture/application/entry-points/rest/route-handlers/route-handler.js.map +1 -0
- package/build/service/architecture/application/index.d.ts +3 -0
- package/build/service/architecture/application/index.d.ts.map +1 -0
- package/build/service/architecture/application/index.js +3 -0
- package/build/service/architecture/application/index.js.map +1 -0
- package/build/service/architecture/architecture.d.ts +11 -0
- package/build/service/architecture/architecture.d.ts.map +1 -0
- package/build/service/architecture/architecture.js +20 -0
- package/build/service/architecture/architecture.js.map +1 -0
- package/build/service/architecture/domain/domain.d.ts +11 -0
- package/build/service/architecture/domain/domain.d.ts.map +1 -0
- package/build/service/architecture/domain/domain.js +25 -0
- package/build/service/architecture/domain/domain.js.map +1 -0
- package/build/service/architecture/domain/index.d.ts +3 -0
- package/build/service/architecture/domain/index.d.ts.map +1 -0
- package/build/service/architecture/domain/index.js +3 -0
- package/build/service/architecture/domain/index.js.map +1 -0
- package/build/service/architecture/domain/provider.d.ts +6 -0
- package/build/service/architecture/domain/provider.d.ts.map +1 -0
- package/build/service/architecture/domain/provider.js +7 -0
- package/build/service/architecture/domain/provider.js.map +1 -0
- package/build/service/architecture/index.d.ts +6 -0
- package/build/service/architecture/index.d.ts.map +1 -0
- package/build/service/architecture/index.js +6 -0
- package/build/service/architecture/index.js.map +1 -0
- package/build/service/architecture/infrastructure/index.d.ts +7 -0
- package/build/service/architecture/infrastructure/index.d.ts.map +1 -0
- package/build/service/architecture/infrastructure/index.js +5 -0
- package/build/service/architecture/infrastructure/index.js.map +1 -0
- package/build/service/architecture/infrastructure/infrastructure.d.ts +10 -0
- package/build/service/architecture/infrastructure/infrastructure.d.ts.map +1 -0
- package/build/service/architecture/infrastructure/infrastructure.js +12 -0
- package/build/service/architecture/infrastructure/infrastructure.js.map +1 -0
- package/build/service/architecture/infrastructure/orm/adapter-loader.d.ts +5 -0
- package/build/service/architecture/infrastructure/orm/adapter-loader.d.ts.map +1 -0
- package/build/service/architecture/infrastructure/orm/adapter-loader.js +25 -0
- package/build/service/architecture/infrastructure/orm/adapter-loader.js.map +1 -0
- package/build/service/architecture/infrastructure/orm/adapters/mongoose-adapter.d.ts +13 -0
- package/build/service/architecture/infrastructure/orm/adapters/mongoose-adapter.d.ts.map +1 -0
- package/build/service/architecture/infrastructure/orm/adapters/mongoose-adapter.js +90 -0
- package/build/service/architecture/infrastructure/orm/adapters/mongoose-adapter.js.map +1 -0
- package/build/service/architecture/infrastructure/orm/adapters/sequelize-adapter.d.ts +12 -0
- package/build/service/architecture/infrastructure/orm/adapters/sequelize-adapter.d.ts.map +1 -0
- package/build/service/architecture/infrastructure/orm/adapters/sequelize-adapter.js +49 -0
- package/build/service/architecture/infrastructure/orm/adapters/sequelize-adapter.js.map +1 -0
- package/build/service/architecture/infrastructure/orm/index.d.ts +3 -0
- package/build/service/architecture/infrastructure/orm/index.d.ts.map +1 -0
- package/build/service/architecture/infrastructure/orm/index.js +3 -0
- package/build/service/architecture/infrastructure/orm/index.js.map +1 -0
- package/build/service/architecture/infrastructure/repositories/abstract.d.ts +20 -0
- package/build/service/architecture/infrastructure/repositories/abstract.d.ts.map +1 -0
- package/build/service/architecture/infrastructure/repositories/abstract.js +63 -0
- package/build/service/architecture/infrastructure/repositories/abstract.js.map +1 -0
- package/build/service/architecture/infrastructure/repositories/index.d.ts +2 -0
- package/build/service/architecture/infrastructure/repositories/index.d.ts.map +1 -0
- package/build/service/architecture/infrastructure/repositories/index.js +2 -0
- package/build/service/architecture/infrastructure/repositories/index.js.map +1 -0
- package/build/service/architecture/infrastructure/repositories/mongoose.d.ts +13 -0
- package/build/service/architecture/infrastructure/repositories/mongoose.d.ts.map +1 -0
- package/build/service/architecture/infrastructure/repositories/mongoose.js +92 -0
- package/build/service/architecture/infrastructure/repositories/mongoose.js.map +1 -0
- package/build/service/architecture/infrastructure/repositories/sequelize.d.ts +12 -0
- package/build/service/architecture/infrastructure/repositories/sequelize.d.ts.map +1 -0
- package/build/service/architecture/infrastructure/repositories/sequelize.js +49 -0
- package/build/service/architecture/infrastructure/repositories/sequelize.js.map +1 -0
- package/build/service/architecture/infrastructure/repositories/types.d.ts +47 -0
- package/build/service/architecture/infrastructure/repositories/types.d.ts.map +1 -0
- package/build/service/architecture/infrastructure/repositories/types.js +6 -0
- package/build/service/architecture/infrastructure/repositories/types.js.map +1 -0
- package/build/service/architecture/infrastructure/repository-interface.d.ts +9 -0
- package/build/service/architecture/infrastructure/repository-interface.d.ts.map +1 -0
- package/build/service/architecture/infrastructure/repository-interface.js +2 -0
- package/build/service/architecture/infrastructure/repository-interface.js.map +1 -0
- package/build/service/architecture/infrastructure/repository.d.ts +9 -0
- package/build/service/architecture/infrastructure/repository.d.ts.map +1 -0
- package/build/service/architecture/infrastructure/repository.js +2 -0
- package/build/service/architecture/infrastructure/repository.js.map +1 -0
- package/build/service/architecture/platform/index.d.ts +6 -0
- package/build/service/architecture/platform/index.d.ts.map +1 -0
- package/build/service/architecture/platform/index.js +5 -0
- package/build/service/architecture/platform/index.js.map +1 -0
- package/build/service/architecture/platform/page/index.d.ts +2 -0
- package/build/service/architecture/platform/page/index.d.ts.map +1 -0
- package/build/service/architecture/platform/page/index.js +2 -0
- package/build/service/architecture/platform/page/index.js.map +1 -0
- package/build/service/architecture/platform/page/page.d.ts +16 -0
- package/build/service/architecture/platform/page/page.d.ts.map +1 -0
- package/build/service/architecture/platform/page/page.js +38 -0
- package/build/service/architecture/platform/page/page.js.map +1 -0
- package/build/service/architecture/platform/server/adapters/express-adapter.d.ts +15 -0
- package/build/service/architecture/platform/server/adapters/express-adapter.d.ts.map +1 -0
- package/build/service/architecture/platform/server/adapters/express-adapter.js +91 -0
- package/build/service/architecture/platform/server/adapters/express-adapter.js.map +1 -0
- package/build/service/architecture/platform/server/adapters/fastify-adapter.d.ts +15 -0
- package/build/service/architecture/platform/server/adapters/fastify-adapter.d.ts.map +1 -0
- package/build/service/architecture/platform/server/adapters/fastify-adapter.js +54 -0
- package/build/service/architecture/platform/server/adapters/fastify-adapter.js.map +1 -0
- package/build/service/architecture/platform/server/adapters/index.d.ts +3 -0
- package/build/service/architecture/platform/server/adapters/index.d.ts.map +1 -0
- package/build/service/architecture/platform/server/adapters/index.js +3 -0
- package/build/service/architecture/platform/server/adapters/index.js.map +1 -0
- package/build/service/architecture/platform/server/index.d.ts +2 -0
- package/build/service/architecture/platform/server/index.d.ts.map +1 -0
- package/build/service/architecture/platform/server/index.js +2 -0
- package/build/service/architecture/platform/server/index.js.map +1 -0
- package/build/service/architecture/platform/server/server-adapter.d.ts +21 -0
- package/build/service/architecture/platform/server/server-adapter.d.ts.map +1 -0
- package/build/service/architecture/platform/server/server-adapter.js +2 -0
- package/build/service/architecture/platform/server/server-adapter.js.map +1 -0
- package/build/service/architecture/platform/server/server.d.ts +97 -0
- package/build/service/architecture/platform/server/server.d.ts.map +1 -0
- package/build/service/architecture/platform/server/server.js +219 -0
- package/build/service/architecture/platform/server/server.js.map +1 -0
- package/build/service/architecture/platform/service.d.ts +24 -0
- package/build/service/architecture/platform/service.d.ts.map +1 -0
- package/build/service/architecture/platform/service.js +40 -0
- package/build/service/architecture/platform/service.js.map +1 -0
- package/build/service/index.d.ts +2 -0
- package/build/service/index.d.ts.map +1 -0
- package/build/service/index.js +2 -0
- package/build/service/index.js.map +1 -0
- package/build/test/tsconfig.tsbuildinfo +1 -0
- package/build/utils/base64.d.ts +3 -0
- package/build/utils/base64.d.ts.map +1 -0
- package/build/utils/base64.js +7 -0
- package/build/utils/base64.js.map +1 -0
- package/build/utils/hmac.d.ts +2 -0
- package/build/utils/hmac.d.ts.map +1 -0
- package/build/utils/hmac.js +7 -0
- package/build/utils/hmac.js.map +1 -0
- package/build/utils/index.d.ts +3 -0
- package/build/utils/index.d.ts.map +1 -0
- package/build/utils/index.js +3 -0
- package/build/utils/index.js.map +1 -0
- package/package.json +110 -27
- package/src/configuration/app-config.ts +24 -0
- package/src/configuration/index.ts +20 -0
- package/src/configuration/loader-factory.ts +1 -0
- package/src/configuration/loader.ts +70 -0
- package/src/configuration/loaders/index.ts +2 -0
- package/src/configuration/loaders/json-loader.ts +32 -0
- package/src/configuration/loaders/yaml-loader.ts +32 -0
- package/src/configuration/types.ts +32 -0
- package/src/configuration/validation.ts +50 -0
- package/src/dependency-injection/container.ts +92 -0
- package/src/dependency-injection/index.ts +1 -0
- package/src/error/custom.ts +52 -1
- package/src/examples/index.ts +2 -0
- package/src/examples/providers/filesystem-provider.ts +198 -0
- package/src/examples/providers/index.ts +6 -0
- package/src/examples/providers/process-provider.ts +150 -0
- package/src/examples/repositories/index.ts +3 -0
- package/src/examples/repositories/sqlite-repository.ts +170 -0
- package/src/index.ts +32 -2
- package/src/locales/en.json +1 -9
- package/src/locales/fr.json +1 -9
- package/src/localization/adapters/index.ts +90 -0
- package/src/localization/index.ts +16 -0
- package/src/localization/locales/en.json +9 -0
- package/src/localization/locales/es.json +9 -0
- package/src/localization/localization.ts +222 -0
- package/src/localization/types.ts +110 -0
- package/src/localization/validation.ts +43 -0
- package/src/logs/adapters/console-adapter.ts +90 -0
- package/src/logs/adapters/pino-adapter.ts +65 -0
- package/src/logs/config.ts +53 -0
- package/src/logs/index.ts +16 -0
- package/src/logs/logger.ts +66 -0
- package/src/logs/types.ts +44 -0
- package/src/orm-exports.ts +23 -0
- package/src/runtime/detector.ts +61 -0
- package/src/runtime/index.ts +2 -0
- package/src/runtime/types.ts +18 -0
- package/src/{micro-service → service}/architecture/application/entry-points/rest/route-handlers/abstract.ts +8 -7
- package/src/{micro-service → service}/architecture/application/entry-points/rest/route-handlers/post-route-handler.ts +3 -1
- package/src/service/architecture/domain/domain.ts +36 -0
- package/src/service/architecture/domain/index.ts +2 -0
- package/src/service/architecture/domain/provider.ts +9 -0
- package/src/service/architecture/infrastructure/index.ts +48 -0
- package/src/service/architecture/infrastructure/orm/adapter-loader.ts +52 -0
- package/src/service/architecture/infrastructure/orm/adapters/mongoose-adapter.ts +133 -0
- package/src/service/architecture/infrastructure/orm/adapters/sequelize-adapter.ts +75 -0
- package/src/service/architecture/infrastructure/orm/index.ts +2 -0
- package/src/service/architecture/infrastructure/repositories/abstract.ts +112 -0
- package/src/service/architecture/infrastructure/repositories/types.ts +125 -0
- package/src/service/architecture/infrastructure/repository-interface.ts +35 -0
- package/src/service/architecture/infrastructure/repository.ts +75 -0
- package/src/service/architecture/platform/index.ts +5 -0
- package/src/service/architecture/platform/page/index.ts +1 -0
- package/src/service/architecture/platform/page/page.ts +52 -0
- package/src/service/architecture/platform/server/adapters/express-adapter.ts +112 -0
- package/src/service/architecture/platform/server/adapters/fastify-adapter.ts +61 -0
- package/src/service/architecture/platform/server/adapters/index.ts +2 -0
- package/src/service/architecture/platform/server/index.ts +1 -0
- package/src/service/architecture/platform/server/server-adapter.ts +23 -0
- package/src/{micro-service/architecture/platform/service/service.ts → service/architecture/platform/server/server.ts} +73 -90
- package/src/service/architecture/platform/service.ts +63 -0
- package/context.yaml +0 -151
- package/eslint.config.mjs +0 -59
- package/guidelines.yaml +0 -74
- package/mongodb.yaml +0 -29
- package/patterns.yaml +0 -55
- package/src/configuration.ts +0 -13
- package/src/logs.ts +0 -77
- package/src/micro-service/architecture/domain/domain.ts +0 -19
- package/src/micro-service/architecture/domain/index.ts +0 -1
- package/src/micro-service/architecture/infrastructure/repositories/abstract.ts +0 -90
- package/src/micro-service/architecture/infrastructure/repositories/mongoose.ts +0 -124
- package/src/micro-service/architecture/infrastructure/repositories/sequelize.ts +0 -70
- package/src/micro-service/architecture/infrastructure/repositories/types.ts +0 -69
- package/src/micro-service/architecture/platform/index.ts +0 -2
- package/src/micro-service/architecture/platform/micro-service.ts +0 -53
- package/src/micro-service/architecture/platform/service/index.ts +0 -1
- package/start.md +0 -34
- package/test/tsconfig.json +0 -9
- package/test/unit/helpers/common/common.ts +0 -32
- package/test/unit/helpers/common/logger.ts +0 -8
- package/test/unit/helpers/database/mongo.ts +0 -77
- package/test/unit/lib/global-setup.ts +0 -79
- package/test/unit/lib/setup-files.ts +0 -16
- package/test/unit/micro-service/architecture/application/application.test.ts +0 -60
- package/test/unit/micro-service/architecture/application/entry-points/rest/route-handlers/abstract.test.ts +0 -62
- package/test/unit/micro-service/architecture/application/entry-points/rest/route-handlers/get-route-handler.test.ts +0 -38
- package/test/unit/micro-service/architecture/application/entry-points/rest/route-handlers/post-route-handler.test.ts +0 -45
- package/test/unit/micro-service/architecture/architecture.test.ts +0 -64
- package/test/unit/micro-service/architecture/domain/domain.test.ts +0 -35
- package/test/unit/micro-service/architecture/infrastructure/infrastructure.test.ts +0 -33
- package/test/unit/micro-service/architecture/infrastructure/repositories/abstract.test.ts +0 -86
- package/test/unit/micro-service/architecture/platform/micro-service.test.ts +0 -86
- package/test/unit/micro-service/architecture/platform/service/service.test.ts +0 -200
- package/tsconfig.json +0 -63
- package/vite.config.mjs +0 -44
- /package/src/{micro-service → service}/architecture/application/application.ts +0 -0
- /package/src/{micro-service → service}/architecture/application/entry-points/index.ts +0 -0
- /package/src/{micro-service → service}/architecture/application/entry-points/rest/common/handler.ts +0 -0
- /package/src/{micro-service → service}/architecture/application/entry-points/rest/common/index.ts +0 -0
- /package/src/{micro-service → service}/architecture/application/entry-points/rest/common/request.ts +0 -0
- /package/src/{micro-service → service}/architecture/application/entry-points/rest/hook-handlers/hook-handler.ts +0 -0
- /package/src/{micro-service → service}/architecture/application/entry-points/rest/hook-handlers/index.ts +0 -0
- /package/src/{micro-service → service}/architecture/application/entry-points/rest/index.ts +0 -0
- /package/src/{micro-service → service}/architecture/application/entry-points/rest/route-handlers/generics.ts +0 -0
- /package/src/{micro-service → service}/architecture/application/entry-points/rest/route-handlers/get-route-handler.ts +0 -0
- /package/src/{micro-service → service}/architecture/application/entry-points/rest/route-handlers/index.ts +0 -0
- /package/src/{micro-service → service}/architecture/application/entry-points/rest/route-handlers/route-handler.ts +0 -0
- /package/src/{micro-service → service}/architecture/application/index.ts +0 -0
- /package/src/{micro-service → service}/architecture/architecture.ts +0 -0
- /package/src/{micro-service → service}/architecture/index.ts +0 -0
- /package/src/{micro-service → service}/architecture/infrastructure/infrastructure.ts +0 -0
- /package/src/{micro-service → service}/architecture/infrastructure/repositories/index.ts +0 -0
- /package/src/{micro-service → service}/index.ts +0 -0
|
@@ -1,25 +1,27 @@
|
|
|
1
|
-
import proxy from "@fastify/http-proxy";
|
|
2
1
|
import { FastifyInstance } from "fastify";
|
|
3
|
-
import { ZodTypeProvider } from "fastify-type-provider-zod";
|
|
4
2
|
import { container } from "tsyringe";
|
|
5
3
|
import { Mongoose } from "mongoose";
|
|
6
4
|
import { Sequelize } from "sequelize";
|
|
5
|
+
import { Express } from "express";
|
|
7
6
|
|
|
8
7
|
import { HookHandler, RouteHandler } from "../../application";
|
|
9
8
|
import { CustomError } from "../../../../error";
|
|
10
9
|
import { Optional } from "../../../../optionals";
|
|
10
|
+
import { ServerAdapter } from "./server-adapter";
|
|
11
|
+
import { FastifyAdapter } from "./adapters/fastify-adapter";
|
|
12
|
+
import { ExpressAdapter } from "./adapters/express-adapter";
|
|
13
|
+
import { PageModule } from "../page";
|
|
11
14
|
|
|
12
|
-
export enum
|
|
15
|
+
export enum ServerType {
|
|
13
16
|
SERVER = "SERVER",
|
|
14
17
|
GATEWAY = "GATEWAY",
|
|
15
18
|
}
|
|
16
19
|
|
|
17
20
|
export enum ServerVendor {
|
|
18
21
|
FASTIFY = "FASTIFY",
|
|
22
|
+
EXPRESS = "EXPRESS",
|
|
19
23
|
}
|
|
20
24
|
|
|
21
|
-
type ServerInstance = FastifyInstance;
|
|
22
|
-
|
|
23
25
|
type ProxyGateway = {
|
|
24
26
|
upstream: string;
|
|
25
27
|
prefix?: string;
|
|
@@ -29,10 +31,10 @@ type ProxiesGateway = Array<ProxyGateway>;
|
|
|
29
31
|
|
|
30
32
|
type GatewayService = { proxies: ProxiesGateway };
|
|
31
33
|
|
|
32
|
-
type
|
|
33
|
-
type:
|
|
34
|
+
type HttpServerConfig = {
|
|
35
|
+
type: ServerType;
|
|
34
36
|
vendor: ServerVendor;
|
|
35
|
-
instance:
|
|
37
|
+
instance: unknown;
|
|
36
38
|
gateway?: GatewayService;
|
|
37
39
|
};
|
|
38
40
|
|
|
@@ -58,10 +60,18 @@ type DatabaseServer = {
|
|
|
58
60
|
onDatabaseConnected?: OnDatabaseConnectedFunction;
|
|
59
61
|
};
|
|
60
62
|
|
|
61
|
-
|
|
63
|
+
type ServerPageConfig = {
|
|
64
|
+
devServerUrl?: string;
|
|
65
|
+
staticDir?: string;
|
|
66
|
+
customRegister?: (server: unknown) => Promise<void> | void;
|
|
67
|
+
apiPrefix?: string;
|
|
68
|
+
};
|
|
69
|
+
|
|
70
|
+
export type ConfigServer = {
|
|
62
71
|
name: string;
|
|
63
|
-
server:
|
|
72
|
+
server: HttpServerConfig;
|
|
64
73
|
databases: Array<DatabaseServer>;
|
|
74
|
+
page?: ServerPageConfig;
|
|
65
75
|
};
|
|
66
76
|
|
|
67
77
|
export enum HandlersType {
|
|
@@ -71,53 +81,6 @@ export enum HandlersType {
|
|
|
71
81
|
|
|
72
82
|
type Handlers = RouteHandler | HookHandler;
|
|
73
83
|
|
|
74
|
-
export const strategiesForServerVendor = {
|
|
75
|
-
[ServerVendor.FASTIFY]: {
|
|
76
|
-
handlers: {
|
|
77
|
-
[HandlersType.ROUTE]: (
|
|
78
|
-
server: FastifyInstance,
|
|
79
|
-
handler: Handlers
|
|
80
|
-
): void => {
|
|
81
|
-
const route = handler as RouteHandler;
|
|
82
|
-
|
|
83
|
-
server.withTypeProvider<ZodTypeProvider>().route({
|
|
84
|
-
url: route.url,
|
|
85
|
-
method: route.method,
|
|
86
|
-
schema: route.schema,
|
|
87
|
-
handler: route.execute.bind(route),
|
|
88
|
-
});
|
|
89
|
-
|
|
90
|
-
// console.info(`registered route: ${route.method} ${route.url}`);
|
|
91
|
-
},
|
|
92
|
-
[HandlersType.HOOK]: (
|
|
93
|
-
server: FastifyInstance,
|
|
94
|
-
handler: Handlers
|
|
95
|
-
): void => {
|
|
96
|
-
const hook = handler as HookHandler;
|
|
97
|
-
|
|
98
|
-
server.addHook(hook.name, hook.execute.bind(hook));
|
|
99
|
-
|
|
100
|
-
// console.info(`registered hook: ${hook.name}`);
|
|
101
|
-
},
|
|
102
|
-
},
|
|
103
|
-
server: {
|
|
104
|
-
[ServiceType.SERVER]: (_: ServerInstance) => {},
|
|
105
|
-
[ServiceType.GATEWAY]: (
|
|
106
|
-
instance: ServerInstance,
|
|
107
|
-
proxies?: ProxiesGateway
|
|
108
|
-
) => {
|
|
109
|
-
proxies?.forEach((proxyConf) => {
|
|
110
|
-
instance.register(proxy, {
|
|
111
|
-
upstream: proxyConf.upstream,
|
|
112
|
-
...(proxyConf.prefix ? { prefix: proxyConf.prefix } : {}),
|
|
113
|
-
http2: false, // Optional: configuration specific to your needs.
|
|
114
|
-
});
|
|
115
|
-
});
|
|
116
|
-
},
|
|
117
|
-
},
|
|
118
|
-
},
|
|
119
|
-
};
|
|
120
|
-
|
|
121
84
|
export const strategiesForDatabaseVendor = {
|
|
122
85
|
[DatabaseVendor.MONGOOSE]: async (input: {
|
|
123
86
|
serviceName: string;
|
|
@@ -188,41 +151,48 @@ type RegisterHandlersInput = {
|
|
|
188
151
|
handlersType: HandlersType;
|
|
189
152
|
};
|
|
190
153
|
|
|
191
|
-
type
|
|
154
|
+
type ServerPort = {
|
|
192
155
|
start: (input: StartInput) => Promise<void>;
|
|
193
156
|
registerHandlers: (input: RegisterHandlersInput) => Promise<void>;
|
|
194
157
|
};
|
|
195
158
|
|
|
196
|
-
export class
|
|
159
|
+
export class Server implements ServerPort {
|
|
197
160
|
private name: string;
|
|
198
|
-
private server:
|
|
161
|
+
private server: HttpServerConfig;
|
|
199
162
|
private databases: Array<DatabaseServer>;
|
|
163
|
+
private page?: ServerPageConfig | undefined;
|
|
164
|
+
private adapter: ServerAdapter;
|
|
200
165
|
|
|
201
|
-
constructor({ name, server, databases }:
|
|
166
|
+
constructor({ name, server, databases, page }: ConfigServer) {
|
|
202
167
|
this.name = name;
|
|
203
168
|
this.server = server;
|
|
204
169
|
this.databases = databases;
|
|
170
|
+
this.page = page;
|
|
171
|
+
|
|
172
|
+
if (this.server.vendor === ServerVendor.FASTIFY) {
|
|
173
|
+
this.adapter = new FastifyAdapter(
|
|
174
|
+
this.server.instance as FastifyInstance,
|
|
175
|
+
);
|
|
176
|
+
} else if (this.server.vendor === ServerVendor.EXPRESS) {
|
|
177
|
+
this.adapter = new ExpressAdapter(this.server.instance as Express);
|
|
178
|
+
} else {
|
|
179
|
+
throw new Error(`Unsupported server vendor: ${this.server.vendor}`);
|
|
180
|
+
}
|
|
205
181
|
}
|
|
206
182
|
|
|
207
183
|
public async registerHandlers(input: RegisterHandlersInput): Promise<void> {
|
|
208
184
|
const { handlers, handlersType } = input;
|
|
209
185
|
|
|
210
|
-
const registerHandlersFunction =
|
|
211
|
-
strategiesForServerVendor[this.server.vendor].handlers[handlersType];
|
|
212
|
-
|
|
213
|
-
if (!registerHandlersFunction) {
|
|
214
|
-
throw new CustomError({
|
|
215
|
-
message: `service vendor ${this.server.vendor} is not supported for ${handlersType} registration`,
|
|
216
|
-
code: 500,
|
|
217
|
-
reason: "service vendor not supported",
|
|
218
|
-
metadata: { vendor: this.server.vendor },
|
|
219
|
-
});
|
|
220
|
-
}
|
|
221
|
-
|
|
222
186
|
await Promise.all(
|
|
223
187
|
handlers.map(async (handler) => {
|
|
224
188
|
try {
|
|
225
|
-
|
|
189
|
+
if (handlersType === HandlersType.ROUTE) {
|
|
190
|
+
this.adapter.registerRoute(handler as RouteHandler);
|
|
191
|
+
} else if (handlersType === HandlersType.HOOK) {
|
|
192
|
+
this.adapter.registerHook(handler as HookHandler);
|
|
193
|
+
} else {
|
|
194
|
+
throw new Error(`Handler type ${handlersType} is not supported`);
|
|
195
|
+
}
|
|
226
196
|
} catch (error: unknown) {
|
|
227
197
|
throw new CustomError({
|
|
228
198
|
message: `failed to register ${handlersType}: ${handler.constructor.name}`,
|
|
@@ -232,7 +202,7 @@ export class Service implements ServicePort {
|
|
|
232
202
|
metadata: { handler: handler.constructor.name },
|
|
233
203
|
});
|
|
234
204
|
}
|
|
235
|
-
})
|
|
205
|
+
}),
|
|
236
206
|
);
|
|
237
207
|
}
|
|
238
208
|
|
|
@@ -290,29 +260,25 @@ export class Service implements ServicePort {
|
|
|
290
260
|
}
|
|
291
261
|
|
|
292
262
|
private async configureServer(): Promise<void> {
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
263
|
+
if (
|
|
264
|
+
this.server.type === ServerType.GATEWAY &&
|
|
265
|
+
this.server.gateway?.proxies
|
|
266
|
+
) {
|
|
267
|
+
this.server.gateway.proxies.forEach((proxyConf) => {
|
|
268
|
+
this.adapter.registerProxy({
|
|
269
|
+
upstream: proxyConf.upstream,
|
|
270
|
+
prefix: proxyConf.prefix || "/",
|
|
271
|
+
http2: false,
|
|
272
|
+
});
|
|
302
273
|
});
|
|
303
274
|
}
|
|
304
|
-
|
|
305
|
-
configureServerFunction(this.server.instance, this.server.gateway?.proxies);
|
|
306
275
|
}
|
|
307
276
|
|
|
308
277
|
private async startServer(input: StartInput): Promise<void> {
|
|
309
278
|
const { port } = input;
|
|
310
279
|
|
|
311
280
|
try {
|
|
312
|
-
await this.
|
|
313
|
-
host: "0.0.0.0",
|
|
314
|
-
port: port,
|
|
315
|
-
});
|
|
281
|
+
await this.adapter.listen(port);
|
|
316
282
|
} catch (error: unknown) {
|
|
317
283
|
throw new CustomError({
|
|
318
284
|
message: `failed to start service "${this.name}"`,
|
|
@@ -330,11 +296,28 @@ export class Service implements ServicePort {
|
|
|
330
296
|
}
|
|
331
297
|
}
|
|
332
298
|
|
|
299
|
+
private async configurePageModule(): Promise<void> {
|
|
300
|
+
if (!this.page) {
|
|
301
|
+
return;
|
|
302
|
+
}
|
|
303
|
+
|
|
304
|
+
const { apiPrefix, ...pageProps } = this.page;
|
|
305
|
+
|
|
306
|
+
const pageModule = new PageModule({
|
|
307
|
+
root: process.cwd(),
|
|
308
|
+
page: pageProps,
|
|
309
|
+
...(apiPrefix ? { apiPrefix } : {}),
|
|
310
|
+
});
|
|
311
|
+
|
|
312
|
+
await pageModule.register(this.adapter);
|
|
313
|
+
}
|
|
314
|
+
|
|
333
315
|
private async configure(input: StartInput): Promise<void> {
|
|
334
316
|
const { port } = input;
|
|
335
317
|
|
|
336
318
|
// await this.configureDatabases();
|
|
337
319
|
await this.configureServer();
|
|
320
|
+
await this.configurePageModule();
|
|
338
321
|
await this.startServer({ port });
|
|
339
322
|
}
|
|
340
323
|
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { Application, ConfigApplication } from "../application";
|
|
2
|
+
import { ConfigDomain, Domain } from "../domain";
|
|
3
|
+
import { ConfigInfrastructure, Infrastructure } from "../infrastructure";
|
|
4
|
+
import { ConfigServer, HandlersType, Server } from "./server/server";
|
|
5
|
+
import type { Optional } from "../../../optionals";
|
|
6
|
+
|
|
7
|
+
export type ConfigService = {
|
|
8
|
+
architecture: {
|
|
9
|
+
application?: Optional<ConfigApplication>;
|
|
10
|
+
domain: ConfigDomain;
|
|
11
|
+
infrastructure: ConfigInfrastructure;
|
|
12
|
+
server?: Optional<ConfigServer>;
|
|
13
|
+
};
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
export class Service {
|
|
17
|
+
private application?: Optional<Application>;
|
|
18
|
+
private domain: Domain;
|
|
19
|
+
private infrastructure: Infrastructure;
|
|
20
|
+
private server?: Optional<Server>;
|
|
21
|
+
|
|
22
|
+
constructor(config: ConfigService) {
|
|
23
|
+
const { architecture } = config;
|
|
24
|
+
const { application, domain, infrastructure, server } = architecture;
|
|
25
|
+
|
|
26
|
+
this.application = application ? new Application(application) : undefined;
|
|
27
|
+
this.domain = new Domain(domain);
|
|
28
|
+
this.infrastructure = new Infrastructure(infrastructure);
|
|
29
|
+
this.server = server ? new Server(server) : undefined;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
public async start(input?: { port?: number }): Promise<void> {
|
|
33
|
+
// Configure databases if server is provided
|
|
34
|
+
if (this.server) {
|
|
35
|
+
await this.server.configureDatabases();
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
// Start infrastructure (repositories)
|
|
39
|
+
this.infrastructure.start();
|
|
40
|
+
|
|
41
|
+
// Start domain (providers)
|
|
42
|
+
await this.domain.start();
|
|
43
|
+
|
|
44
|
+
// Start application (routes/hooks) if provided
|
|
45
|
+
if (this.application) {
|
|
46
|
+
this.application.start();
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
// Register handlers and start server if provided
|
|
50
|
+
if (this.server && this.application) {
|
|
51
|
+
this.server.registerHandlers({
|
|
52
|
+
handlers: this.application.routeHandlers,
|
|
53
|
+
handlersType: HandlersType.ROUTE,
|
|
54
|
+
});
|
|
55
|
+
this.server.registerHandlers({
|
|
56
|
+
handlers: this.application.hookHandlers,
|
|
57
|
+
handlersType: HandlersType.HOOK,
|
|
58
|
+
});
|
|
59
|
+
|
|
60
|
+
await this.server.start({ port: input?.port ?? 3000 });
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
package/context.yaml
DELETED
|
@@ -1,151 +0,0 @@
|
|
|
1
|
-
# Zacatl Project: Structured Context
|
|
2
|
-
|
|
3
|
-
components:
|
|
4
|
-
- name: MicroService
|
|
5
|
-
type: class
|
|
6
|
-
file: src/micro-service/architecture/platform/micro-service.ts
|
|
7
|
-
description: |
|
|
8
|
-
The main orchestrator for the microservice. Bootstraps Application, Domain, Infrastructure, and Service layers. Handles startup, dependency registration, and handler registration.
|
|
9
|
-
methods:
|
|
10
|
-
- name: constructor
|
|
11
|
-
description: Initializes all architecture layers from config.
|
|
12
|
-
- name: start
|
|
13
|
-
description: Starts the service, configures databases, registers handlers, and launches the HTTP server.
|
|
14
|
-
dependencies:
|
|
15
|
-
- Application
|
|
16
|
-
- Domain
|
|
17
|
-
- Infrastructure
|
|
18
|
-
- Service
|
|
19
|
-
|
|
20
|
-
- name: Application
|
|
21
|
-
type: class
|
|
22
|
-
file: src/micro-service/architecture/application/application.ts
|
|
23
|
-
description: |
|
|
24
|
-
Handles HTTP entry points (REST), validation, and delegates to domain logic. Registers route and hook handlers using DI.
|
|
25
|
-
methods:
|
|
26
|
-
- name: constructor
|
|
27
|
-
description: Configures i18n and stores entry point config.
|
|
28
|
-
- name: start
|
|
29
|
-
description: Registers and stores REST hook and route handlers.
|
|
30
|
-
dependencies:
|
|
31
|
-
- AbstractArchitecture
|
|
32
|
-
- HookHandler
|
|
33
|
-
- RouteHandler
|
|
34
|
-
|
|
35
|
-
- name: Infrastructure
|
|
36
|
-
type: class
|
|
37
|
-
file: src/micro-service/architecture/infrastructure/infrastructure.ts
|
|
38
|
-
description: |
|
|
39
|
-
Registers and manages repositories (e.g., MongoDB) for persistence. Uses DI for repository registration.
|
|
40
|
-
methods:
|
|
41
|
-
- name: constructor
|
|
42
|
-
description: Stores repository config.
|
|
43
|
-
- name: start
|
|
44
|
-
description: Registers repositories in DI container.
|
|
45
|
-
dependencies:
|
|
46
|
-
- AbstractArchitecture
|
|
47
|
-
|
|
48
|
-
- name: BaseRepository
|
|
49
|
-
type: abstract class
|
|
50
|
-
file: src/micro-service/architecture/infrastructure/repositories/abstract.ts
|
|
51
|
-
description: |
|
|
52
|
-
Abstract base for MongoDB repositories. Handles model creation, lazy initialization, and CRUD methods. Ensures returned documents have an id field.
|
|
53
|
-
methods:
|
|
54
|
-
- name: constructor
|
|
55
|
-
description: Sets up Mongoose model and schema.
|
|
56
|
-
- name: findById
|
|
57
|
-
description: Finds a document by id and returns a lean object with id.
|
|
58
|
-
- name: create
|
|
59
|
-
description: Creates a new document and returns a lean object with id.
|
|
60
|
-
- name: update
|
|
61
|
-
description: Updates a document by id and returns a lean object with id.
|
|
62
|
-
- name: delete
|
|
63
|
-
description: Deletes a document by id and returns a lean object with id.
|
|
64
|
-
dependencies:
|
|
65
|
-
- mongoose
|
|
66
|
-
- tsyringe
|
|
67
|
-
|
|
68
|
-
- name: AbstractArchitecture
|
|
69
|
-
type: abstract class
|
|
70
|
-
file: src/micro-service/architecture/architecture.ts
|
|
71
|
-
description: |
|
|
72
|
-
Provides generic dependency registration helpers for all architecture layers. Enforces a start() contract.
|
|
73
|
-
methods:
|
|
74
|
-
- name: registerDependencies
|
|
75
|
-
description: Registers an array of classes in the DI container.
|
|
76
|
-
- name: registerAndStoreDependencies
|
|
77
|
-
description: Registers classes and stores resolved instances in a provided array.
|
|
78
|
-
- name: start
|
|
79
|
-
description: Abstract method to be implemented by subclasses.
|
|
80
|
-
dependencies:
|
|
81
|
-
- tsyringe
|
|
82
|
-
|
|
83
|
-
- name: CustomError
|
|
84
|
-
type: class
|
|
85
|
-
file: src/error/custom.ts
|
|
86
|
-
description: |
|
|
87
|
-
Base class for all custom errors. Supports metadata, error codes, and unique IDs. Used for structured error handling.
|
|
88
|
-
methods:
|
|
89
|
-
- name: constructor
|
|
90
|
-
description: Initializes error with message, code, reason, metadata, and stack trace.
|
|
91
|
-
|
|
92
|
-
- name: getConfigOrThrow
|
|
93
|
-
type: function
|
|
94
|
-
file: src/configuration.ts
|
|
95
|
-
description: |
|
|
96
|
-
Retrieves configuration values from the config system. Throws if missing.
|
|
97
|
-
|
|
98
|
-
- name: defaultLogger
|
|
99
|
-
type: object
|
|
100
|
-
file: src/logs.ts
|
|
101
|
-
description: |
|
|
102
|
-
Pino-based logger configured with environment and service metadata. Used for structured logging.
|
|
103
|
-
|
|
104
|
-
- name: Utility Exports
|
|
105
|
-
type: module
|
|
106
|
-
file: src/utils/index.ts
|
|
107
|
-
description: |
|
|
108
|
-
Exports utility functions (e.g., base64, hmac) for use throughout the codebase.
|
|
109
|
-
|
|
110
|
-
layers:
|
|
111
|
-
- name: Platform
|
|
112
|
-
description: Bootstraps the app, configures DI, starts the server.
|
|
113
|
-
files:
|
|
114
|
-
- src/micro-service/architecture/platform/micro-service.ts
|
|
115
|
-
- src/micro-service/architecture/platform/service/service.ts
|
|
116
|
-
- name: Application
|
|
117
|
-
description: Handles HTTP requests, validation, delegates to domain logic.
|
|
118
|
-
files:
|
|
119
|
-
- src/micro-service/architecture/application/application.ts
|
|
120
|
-
- src/micro-service/architecture/application/entry-points/rest/route-handlers/
|
|
121
|
-
- src/micro-service/architecture/application/entry-points/rest/hook-handlers/
|
|
122
|
-
- name: Domain
|
|
123
|
-
description: Pure business rules, models, and logic (no infrastructure deps).
|
|
124
|
-
files:
|
|
125
|
-
- src/micro-service/architecture/domain/
|
|
126
|
-
- name: Infrastructure
|
|
127
|
-
description: Persistence (MongoDB repositories), external service integration.
|
|
128
|
-
files:
|
|
129
|
-
- src/micro-service/architecture/infrastructure/repositories/
|
|
130
|
-
- src/micro-service/architecture/infrastructure/infrastructure.ts
|
|
131
|
-
|
|
132
|
-
patterns:
|
|
133
|
-
- Dependency Injection: All services, repositories, and handlers are registered in the DI container (tsyringe). Never instantiate dependencies directly.
|
|
134
|
-
- Error Handling: Custom error classes extend CustomError. Errors are thrown and bubble up to Fastify's error handler unless custom handling is needed.
|
|
135
|
-
- Validation: All request/response validation uses zod schemas.
|
|
136
|
-
- Testing: All business logic, handlers, and utilities are unit tested using vitest. Tests mirror the src/ structure.
|
|
137
|
-
|
|
138
|
-
config:
|
|
139
|
-
- Localization: Locale JSON files in src/locales/ (e.g., en.json)
|
|
140
|
-
- Environment Variables:
|
|
141
|
-
- SERVICE_NAME: Service name
|
|
142
|
-
- NODE_ENV: Environment (development, production, test)
|
|
143
|
-
- CONNECTION_STRING: Database connection string
|
|
144
|
-
- APP_VERSION: Application version
|
|
145
|
-
- APP_ENV: Application environment
|
|
146
|
-
|
|
147
|
-
testing:
|
|
148
|
-
- All tests are in test/unit/, mirroring src/ structure.
|
|
149
|
-
- Uses vitest for all tests.
|
|
150
|
-
- Mocks external dependencies (DB, services) in tests.
|
|
151
|
-
- Test helpers in test/unit/helpers/.
|
package/eslint.config.mjs
DELETED
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
import { FlatCompat } from "@eslint/eslintrc";
|
|
2
|
-
import js from "@eslint/js";
|
|
3
|
-
import tseslint from "typescript-eslint";
|
|
4
|
-
import tsEslintParser from "@typescript-eslint/parser";
|
|
5
|
-
import path from "path";
|
|
6
|
-
import { fileURLToPath } from "url";
|
|
7
|
-
|
|
8
|
-
const __filename = fileURLToPath(import.meta.url);
|
|
9
|
-
const __dirname = path.dirname(__filename);
|
|
10
|
-
|
|
11
|
-
const compat = new FlatCompat({
|
|
12
|
-
baseDirectory: __dirname, // optional; default: process.cwd()
|
|
13
|
-
resolvePluginsRelativeTo: __dirname, // optional
|
|
14
|
-
recommendedConfig: js.configs.recommended, // optional unless you're using "eslint:recommended"
|
|
15
|
-
allConfig: js.configs.all, // optional unless you're using "eslint:all"
|
|
16
|
-
});
|
|
17
|
-
|
|
18
|
-
export default [
|
|
19
|
-
{
|
|
20
|
-
ignores: [
|
|
21
|
-
"README.md",
|
|
22
|
-
"package-lock.json",
|
|
23
|
-
"package.json",
|
|
24
|
-
"tsconfig.json",
|
|
25
|
-
"bun.lockb",
|
|
26
|
-
"build/**/*",
|
|
27
|
-
"report/**/*",
|
|
28
|
-
"eslint.config.mjs",
|
|
29
|
-
"vite.config.mjs",
|
|
30
|
-
"LICENSE",
|
|
31
|
-
"Dockerfile",
|
|
32
|
-
"config/**/*",
|
|
33
|
-
"doc/**/*",
|
|
34
|
-
"locales/**/*",
|
|
35
|
-
],
|
|
36
|
-
},
|
|
37
|
-
{
|
|
38
|
-
files: ["src/*.ts"],
|
|
39
|
-
languageOptions: {
|
|
40
|
-
parser: tsEslintParser,
|
|
41
|
-
parserOptions: {
|
|
42
|
-
project: "./tsconfig.json",
|
|
43
|
-
},
|
|
44
|
-
globals: {
|
|
45
|
-
__dirname: "readonly",
|
|
46
|
-
process: "readonly",
|
|
47
|
-
console: "readonly",
|
|
48
|
-
},
|
|
49
|
-
},
|
|
50
|
-
plugins: {
|
|
51
|
-
"@typescript-eslint": tseslint,
|
|
52
|
-
},
|
|
53
|
-
rules: {
|
|
54
|
-
"no-unused-vars": "off",
|
|
55
|
-
},
|
|
56
|
-
},
|
|
57
|
-
js.configs.recommended,
|
|
58
|
-
...compat.config({}),
|
|
59
|
-
];
|
package/guidelines.yaml
DELETED
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
# Zacatl Project: Coding Guidelines & Best Practices
|
|
2
|
-
|
|
3
|
-
naming:
|
|
4
|
-
file_folder:
|
|
5
|
-
- Use lowercase and hyphens (e.g., user-repository.ts, route-handlers/)
|
|
6
|
-
variables:
|
|
7
|
-
- Use meaningful, descriptive names
|
|
8
|
-
classes:
|
|
9
|
-
- Use PascalCase for class names
|
|
10
|
-
functions:
|
|
11
|
-
- Use camelCase for function and method names
|
|
12
|
-
|
|
13
|
-
style:
|
|
14
|
-
- Write clean, modular, and straightforward code
|
|
15
|
-
- Use strong typing and TypeScript generics where appropriate
|
|
16
|
-
- Prefer async/await for asynchronous code
|
|
17
|
-
- Keep functions short, focused, and readable
|
|
18
|
-
- Prefer clarity over excessive comments; use tests to document behavior
|
|
19
|
-
- Avoid code duplication (DRY principle); extract reusable logic into utils/ or shared services
|
|
20
|
-
- Use modern TypeScript/ES features
|
|
21
|
-
|
|
22
|
-
architecture:
|
|
23
|
-
- Follow layered (hexagonal) architecture: Platform → Application → Domain → Infrastructure
|
|
24
|
-
- Strict separation of concerns between layers
|
|
25
|
-
- Application: Handles HTTP, validation, delegates to domain
|
|
26
|
-
- Domain: Pure business logic, no infrastructure dependencies
|
|
27
|
-
- Infrastructure: Persistence, external integrations
|
|
28
|
-
- Platform: Bootstraps, configures DI, starts server
|
|
29
|
-
|
|
30
|
-
patterns:
|
|
31
|
-
dependency_injection:
|
|
32
|
-
- Use tsyringe for all DI
|
|
33
|
-
- Register all services, repositories, and handlers in the DI container
|
|
34
|
-
- Never instantiate dependencies directly; always resolve via DI
|
|
35
|
-
error_handling:
|
|
36
|
-
- All custom errors extend CustomError (src/error/custom.ts)
|
|
37
|
-
- Use CustomError.handle(error) in middleware or route handlers to log/format errors
|
|
38
|
-
- Always include relevant metadata and a clear message in error instances
|
|
39
|
-
- Throw errors for exceptional cases; do not return error objects
|
|
40
|
-
- Let errors bubble up to Fastify’s error handler unless custom handling is needed
|
|
41
|
-
validation:
|
|
42
|
-
- Use zod schemas for all request/response validation
|
|
43
|
-
testing:
|
|
44
|
-
- Use vitest for all tests
|
|
45
|
-
- Place tests in test/, mirroring src/ structure
|
|
46
|
-
- Write unit tests for all logic
|
|
47
|
-
- Mock all external dependencies (DB, services) in tests
|
|
48
|
-
- Use descriptive test names and group related tests in files named after the module under test
|
|
49
|
-
- Run tests using the vitest CLI
|
|
50
|
-
documentation:
|
|
51
|
-
- Update context.yaml and guidelines.yaml with any new patterns, conventions, or architectural changes
|
|
52
|
-
- Document new features, patterns, or conventions in YAML, not Markdown
|
|
53
|
-
|
|
54
|
-
mongodb:
|
|
55
|
-
- Define all schemas in infrastructure/repositories/
|
|
56
|
-
- Embed related data for performance when possible
|
|
57
|
-
- Keep schemas minimal and use concise property names
|
|
58
|
-
- Use references for large or independent data
|
|
59
|
-
- Ensure documents stay well below MongoDB’s 16MB limit
|
|
60
|
-
- Define indexes for frequently queried fields
|
|
61
|
-
- Use Mongoose and zod for schema and runtime validation
|
|
62
|
-
- Consider schema versioning for breaking changes
|
|
63
|
-
|
|
64
|
-
extending:
|
|
65
|
-
- Add new features by creating new handlers, services, or repositories in the appropriate layer
|
|
66
|
-
- Register all new classes in the DI container
|
|
67
|
-
- Write tests for all new logic
|
|
68
|
-
- Update context.yaml and guidelines.yaml with new patterns or conventions
|
|
69
|
-
|
|
70
|
-
security:
|
|
71
|
-
- Validate all inputs
|
|
72
|
-
- Handle errors gracefully
|
|
73
|
-
- Never expose sensitive data
|
|
74
|
-
- Sanitize and validate all external data
|
package/mongodb.yaml
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
# Zacatl Project: MongoDB Schema Design Guidelines
|
|
2
|
-
|
|
3
|
-
origin: mongodb_schema_design_guidelines.md
|
|
4
|
-
source: MongoDB_schema_design_guidelines.pdf
|
|
5
|
-
|
|
6
|
-
principles:
|
|
7
|
-
- favor_embedding:
|
|
8
|
-
rule: Embed related data within a single document when possible to improve performance by reducing the need for joins/queries.
|
|
9
|
-
rationale: Embedded documents ensure related data is retrieved together, enhancing read performance for one-to-few/one-to-many relationships.
|
|
10
|
-
- minimalism_and_simplicity:
|
|
11
|
-
rule: Design schemas with simplicity and minimalism. Use nested objects to reflect natural data hierarchies.
|
|
12
|
-
rationale: Minimal schemas are easier to understand, maintain, and scale.
|
|
13
|
-
- property_naming:
|
|
14
|
-
rule: Use single-word property names when possible; otherwise, limit to two words.
|
|
15
|
-
rationale: Short, concise property names reduce errors and improve readability.
|
|
16
|
-
- document_size_and_cardinality:
|
|
17
|
-
rule: Keep document size within MongoDB’s 16MB limit. Avoid embedding data that could grow unbounded (high-cardinality relationships).
|
|
18
|
-
rationale: Large documents degrade performance and complicate replication/backup. Use references for large/independent data.
|
|
19
|
-
- lifecycle_consistency:
|
|
20
|
-
rule: Embed data only if it shares a lifecycle with the parent document. Use references if embedded data is accessed/updated independently.
|
|
21
|
-
rationale: Aligning lifecycles ensures consistent, predictable schema behavior.
|
|
22
|
-
|
|
23
|
-
flexibility:
|
|
24
|
-
- These guidelines are best practices and should be adapted to specific application requirements and data access patterns.
|
|
25
|
-
- The recommendation for concise property names is flexible, but clarity and consistency are critical.
|
|
26
|
-
|
|
27
|
-
conclusion:
|
|
28
|
-
- Following these guidelines will help ensure MongoDB schemas are optimized for performance, maintainability, and scalability.
|
|
29
|
-
- Adapt as needed for your application’s needs.
|