@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
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
{
|
|
2
|
+
"ERROR_MESSAGES": {
|
|
3
|
+
"DEFAULT": "An error occurred.",
|
|
4
|
+
"VALIDATION": "Validation error: required fields are missing or invalid. Please review your input and ensure all fields meet the expected format."
|
|
5
|
+
},
|
|
6
|
+
"SUCCESS_MESSAGES": {
|
|
7
|
+
"DEFAULT": "Your request was processed successfully."
|
|
8
|
+
}
|
|
9
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
{
|
|
2
|
+
"ERROR_MESSAGES": {
|
|
3
|
+
"DEFAULT": "Ocurrió un error.",
|
|
4
|
+
"VALIDATION": "Error de validación: faltan campos requeridos o son inválidos. Por favor, revise su entrada y asegúrese de que todos los campos cumplan con el formato esperado."
|
|
5
|
+
},
|
|
6
|
+
"SUCCESS_MESSAGES": {
|
|
7
|
+
"DEFAULT": "Su solicitud se procesó correctamente."
|
|
8
|
+
}
|
|
9
|
+
}
|
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
import i18next from "i18next";
|
|
2
|
+
import type { I18nAdapter, I18nConfig, I18nInstance } from "./types";
|
|
3
|
+
import { FilesystemAdapter } from "./adapters";
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Create a new i18n instance with optional adapter and configuration.
|
|
7
|
+
* Follows the same factory pattern as createLogger().
|
|
8
|
+
*
|
|
9
|
+
* @param adapter - I18nAdapter implementation (defaults to FilesystemAdapter('./src/localization/locales'))
|
|
10
|
+
* @param config - I18n configuration options
|
|
11
|
+
* @returns Configured I18nInstance
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* // With default filesystem adapter
|
|
15
|
+
* const i18n = createI18n();
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* // With custom adapter
|
|
19
|
+
* import { MemoryAdapter } from './adapters';
|
|
20
|
+
* const i18n = createI18n(new MemoryAdapter({
|
|
21
|
+
* en: { translation: { greeting: 'Hello' } }
|
|
22
|
+
* }));
|
|
23
|
+
*
|
|
24
|
+
* @example
|
|
25
|
+
* // With configuration
|
|
26
|
+
* const i18n = createI18n(undefined, {
|
|
27
|
+
* defaultLanguage: 'en',
|
|
28
|
+
* supportedLanguages: ['en', 'es'],
|
|
29
|
+
* i18nextOptions: { ns: ['translation', 'errors'] }
|
|
30
|
+
* });
|
|
31
|
+
*/
|
|
32
|
+
export const createI18n = (
|
|
33
|
+
adapter?: I18nAdapter,
|
|
34
|
+
config?: I18nConfig,
|
|
35
|
+
): I18nInstance => {
|
|
36
|
+
const finalAdapter =
|
|
37
|
+
adapter ??
|
|
38
|
+
new FilesystemAdapter(`${process.cwd()}/src/localization/locales`);
|
|
39
|
+
const finalConfig: I18nConfig = {
|
|
40
|
+
defaultLanguage: "en",
|
|
41
|
+
fallbackLanguage: "en",
|
|
42
|
+
supportedLanguages: ["en", "es"],
|
|
43
|
+
defaultNamespace: "translation",
|
|
44
|
+
...config,
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
// Initialize adapter
|
|
48
|
+
if (finalAdapter.init) {
|
|
49
|
+
const result = finalAdapter.init();
|
|
50
|
+
if (result instanceof Promise) {
|
|
51
|
+
throw new Error(
|
|
52
|
+
"Async adapter.init() not supported in createI18n(); use createI18nAsync() instead",
|
|
53
|
+
);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
// Configure i18next
|
|
58
|
+
const i18nInstance = i18next.createInstance();
|
|
59
|
+
i18nInstance.init(
|
|
60
|
+
{
|
|
61
|
+
lng: finalConfig.defaultLanguage,
|
|
62
|
+
fallbackLng: finalConfig.fallbackLanguage,
|
|
63
|
+
ns: [finalConfig.defaultNamespace],
|
|
64
|
+
defaultNS: finalConfig.defaultNamespace,
|
|
65
|
+
interpolation: {
|
|
66
|
+
escapeValue: false, // React/TypeScript handles escaping
|
|
67
|
+
},
|
|
68
|
+
resources: loadInitialResources(finalAdapter, finalConfig),
|
|
69
|
+
...finalConfig.i18nextOptions,
|
|
70
|
+
} as Record<string, unknown>,
|
|
71
|
+
(err: unknown) => {
|
|
72
|
+
if (err) {
|
|
73
|
+
const errorMessage = err instanceof Error ? err.message : String(err);
|
|
74
|
+
throw new Error(`i18n initialization failed: ${errorMessage}`);
|
|
75
|
+
}
|
|
76
|
+
},
|
|
77
|
+
);
|
|
78
|
+
|
|
79
|
+
return createI18nInstanceWrapper(i18nInstance, finalAdapter, finalConfig);
|
|
80
|
+
};
|
|
81
|
+
|
|
82
|
+
/**
|
|
83
|
+
* Create a new async i18n instance.
|
|
84
|
+
* Use this if your adapter.init() returns a Promise.
|
|
85
|
+
*
|
|
86
|
+
* @param adapter - I18nAdapter implementation
|
|
87
|
+
* @param config - I18n configuration options
|
|
88
|
+
* @returns Promise<I18nInstance>
|
|
89
|
+
*/
|
|
90
|
+
export const createI18nAsync = async (
|
|
91
|
+
adapter?: I18nAdapter,
|
|
92
|
+
config?: I18nConfig,
|
|
93
|
+
): Promise<I18nInstance> => {
|
|
94
|
+
const finalAdapter =
|
|
95
|
+
adapter ??
|
|
96
|
+
new FilesystemAdapter(`${process.cwd()}/src/localization/locales`);
|
|
97
|
+
const finalConfig: I18nConfig = {
|
|
98
|
+
defaultLanguage: "en",
|
|
99
|
+
fallbackLanguage: "en",
|
|
100
|
+
supportedLanguages: ["en", "es"],
|
|
101
|
+
defaultNamespace: "translation",
|
|
102
|
+
...config,
|
|
103
|
+
};
|
|
104
|
+
|
|
105
|
+
// Initialize adapter
|
|
106
|
+
if (finalAdapter.init) {
|
|
107
|
+
const result = finalAdapter.init();
|
|
108
|
+
if (result instanceof Promise) {
|
|
109
|
+
await result;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
// Configure i18next
|
|
114
|
+
const i18nInstance = i18next.createInstance();
|
|
115
|
+
await new Promise<void>((resolve, reject) => {
|
|
116
|
+
i18nInstance.init(
|
|
117
|
+
{
|
|
118
|
+
lng: finalConfig.defaultLanguage,
|
|
119
|
+
fallbackLng: finalConfig.fallbackLanguage,
|
|
120
|
+
ns: [finalConfig.defaultNamespace],
|
|
121
|
+
defaultNS: finalConfig.defaultNamespace,
|
|
122
|
+
interpolation: {
|
|
123
|
+
escapeValue: false,
|
|
124
|
+
},
|
|
125
|
+
resources: loadInitialResources(finalAdapter, finalConfig),
|
|
126
|
+
...finalConfig.i18nextOptions,
|
|
127
|
+
} as Record<string, unknown>,
|
|
128
|
+
(err: unknown) => {
|
|
129
|
+
if (err) {
|
|
130
|
+
const errorMessage = err instanceof Error ? err.message : String(err);
|
|
131
|
+
reject(new Error(`i18n initialization failed: ${errorMessage}`));
|
|
132
|
+
} else {
|
|
133
|
+
resolve();
|
|
134
|
+
}
|
|
135
|
+
},
|
|
136
|
+
);
|
|
137
|
+
});
|
|
138
|
+
|
|
139
|
+
return createI18nInstanceWrapper(i18nInstance, finalAdapter, finalConfig);
|
|
140
|
+
};
|
|
141
|
+
|
|
142
|
+
/**
|
|
143
|
+
* Get or throw error if not initialized.
|
|
144
|
+
* Used internally; not part of public API.
|
|
145
|
+
*/
|
|
146
|
+
let globalI18nInstance: I18nInstance | null = null;
|
|
147
|
+
|
|
148
|
+
export const setGlobalI18n = (instance: I18nInstance): void => {
|
|
149
|
+
globalI18nInstance = instance;
|
|
150
|
+
};
|
|
151
|
+
|
|
152
|
+
export const getI18nOrThrow = (): I18nInstance => {
|
|
153
|
+
if (!globalI18nInstance) {
|
|
154
|
+
throw new Error(
|
|
155
|
+
"i18n not initialized. Call setGlobalI18n() first or use createI18n() to create an instance.",
|
|
156
|
+
);
|
|
157
|
+
}
|
|
158
|
+
return globalI18nInstance;
|
|
159
|
+
};
|
|
160
|
+
|
|
161
|
+
/**
|
|
162
|
+
* Internal: Load initial resources from adapter.
|
|
163
|
+
*/
|
|
164
|
+
const loadInitialResources = (
|
|
165
|
+
adapter: I18nAdapter,
|
|
166
|
+
config: I18nConfig,
|
|
167
|
+
): Record<string, Record<string, unknown>> => {
|
|
168
|
+
const resources: Record<string, Record<string, unknown>> = {};
|
|
169
|
+
|
|
170
|
+
for (const lang of config.supportedLanguages ?? []) {
|
|
171
|
+
const res = adapter.loadResources(
|
|
172
|
+
lang,
|
|
173
|
+
config.defaultNamespace ?? "translation",
|
|
174
|
+
);
|
|
175
|
+
if (res) {
|
|
176
|
+
resources[lang] = {
|
|
177
|
+
[config.defaultNamespace ?? "translation"]: res,
|
|
178
|
+
};
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
return resources;
|
|
183
|
+
};
|
|
184
|
+
|
|
185
|
+
/**
|
|
186
|
+
* Internal: Create the I18nInstance wrapper.
|
|
187
|
+
*/
|
|
188
|
+
const createI18nInstanceWrapper = (
|
|
189
|
+
i18nInstance: unknown,
|
|
190
|
+
_adapter: I18nAdapter,
|
|
191
|
+
config: I18nConfig,
|
|
192
|
+
): I18nInstance => {
|
|
193
|
+
const inst = i18nInstance as any; // eslint-disable-line @typescript-eslint/no-explicit-any
|
|
194
|
+
return {
|
|
195
|
+
t: (key: string, options?: Record<string, unknown>) =>
|
|
196
|
+
inst.t(key, options) as string,
|
|
197
|
+
|
|
198
|
+
getLanguage: () => inst.language,
|
|
199
|
+
|
|
200
|
+
setLanguage: async (language: string) => {
|
|
201
|
+
await inst.changeLanguage(language);
|
|
202
|
+
},
|
|
203
|
+
|
|
204
|
+
getSupportedLanguages: () => config.supportedLanguages ?? ["en"],
|
|
205
|
+
|
|
206
|
+
getI18next: () => i18nInstance,
|
|
207
|
+
|
|
208
|
+
addResources: (
|
|
209
|
+
language: string,
|
|
210
|
+
namespace: string,
|
|
211
|
+
resources: Record<string, unknown>,
|
|
212
|
+
) => {
|
|
213
|
+
inst.addResourceBundle(language, namespace, resources, true, true);
|
|
214
|
+
},
|
|
215
|
+
|
|
216
|
+
getResources: (language?: string, namespace?: string) => {
|
|
217
|
+
const lang = language ?? inst.language;
|
|
218
|
+
const ns = namespace ?? config.defaultNamespace ?? "translation";
|
|
219
|
+
return inst.getResourceBundle(lang, ns) ?? null;
|
|
220
|
+
},
|
|
221
|
+
};
|
|
222
|
+
};
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* I18n adapter interface for pluggable i18n backends.
|
|
3
|
+
* Implementations define where translations are loaded from (filesystem, API, memory, etc.).
|
|
4
|
+
*/
|
|
5
|
+
export interface I18nAdapter {
|
|
6
|
+
/**
|
|
7
|
+
* Initialize the adapter with optional configuration.
|
|
8
|
+
*/
|
|
9
|
+
init?(config?: Record<string, unknown>): Promise<void> | void;
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Load translations for a specific language and namespace.
|
|
13
|
+
* Returns the loaded resources object.
|
|
14
|
+
*/
|
|
15
|
+
loadResources(
|
|
16
|
+
language: string,
|
|
17
|
+
namespace: string,
|
|
18
|
+
): Promise<Record<string, unknown> | null> | Record<string, unknown> | null;
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Optional: Save translations (useful for some backends).
|
|
22
|
+
*/
|
|
23
|
+
saveResources?(
|
|
24
|
+
language: string,
|
|
25
|
+
namespace: string,
|
|
26
|
+
resources: Record<string, unknown>,
|
|
27
|
+
): Promise<void> | void;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* I18n configuration options.
|
|
32
|
+
*/
|
|
33
|
+
export interface I18nConfig {
|
|
34
|
+
/**
|
|
35
|
+
* Default language for translations.
|
|
36
|
+
* @default 'en'
|
|
37
|
+
*/
|
|
38
|
+
defaultLanguage?: string;
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* Fallback language if translation not found.
|
|
42
|
+
* @default 'en'
|
|
43
|
+
*/
|
|
44
|
+
fallbackLanguage?: string;
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* List of supported languages.
|
|
48
|
+
* @default ['en']
|
|
49
|
+
*/
|
|
50
|
+
supportedLanguages?: string[];
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* Default namespace for translations.
|
|
54
|
+
* @default 'translation'
|
|
55
|
+
*/
|
|
56
|
+
defaultNamespace?: string;
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* Additional i18next options to merge with defaults.
|
|
60
|
+
*/
|
|
61
|
+
i18nextOptions?: Record<string, unknown>;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* I18n instance returned by createI18n().
|
|
66
|
+
* Provides translation, language switching, and management methods.
|
|
67
|
+
*/
|
|
68
|
+
export interface I18nInstance {
|
|
69
|
+
/**
|
|
70
|
+
* Translate a key with optional interpolation.
|
|
71
|
+
*/
|
|
72
|
+
t(key: string, options?: Record<string, unknown>): string;
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* Get the current language.
|
|
76
|
+
*/
|
|
77
|
+
getLanguage(): string;
|
|
78
|
+
|
|
79
|
+
/**
|
|
80
|
+
* Change the current language.
|
|
81
|
+
*/
|
|
82
|
+
setLanguage(language: string): Promise<void>;
|
|
83
|
+
|
|
84
|
+
/**
|
|
85
|
+
* Get all supported languages.
|
|
86
|
+
*/
|
|
87
|
+
getSupportedLanguages(): string[];
|
|
88
|
+
|
|
89
|
+
/**
|
|
90
|
+
* Get the raw i18next instance for advanced usage.
|
|
91
|
+
*/
|
|
92
|
+
getI18next(): unknown;
|
|
93
|
+
|
|
94
|
+
/**
|
|
95
|
+
* Add resources programmatically.
|
|
96
|
+
*/
|
|
97
|
+
addResources(
|
|
98
|
+
language: string,
|
|
99
|
+
namespace: string,
|
|
100
|
+
resources: Record<string, unknown>,
|
|
101
|
+
): void;
|
|
102
|
+
|
|
103
|
+
/**
|
|
104
|
+
* Get resource bundles for a language/namespace.
|
|
105
|
+
*/
|
|
106
|
+
getResources(
|
|
107
|
+
language?: string,
|
|
108
|
+
namespace?: string,
|
|
109
|
+
): Record<string, unknown> | null;
|
|
110
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Zod schema for validating i18n configuration.
|
|
5
|
+
* Ensures all required language files and namespaces are present.
|
|
6
|
+
*/
|
|
7
|
+
export const I18nConfigSchema = z.object({
|
|
8
|
+
defaultLanguage: z.string().default("en").describe("Default language code"),
|
|
9
|
+
fallbackLanguage: z.string().default("en").describe("Fallback language code"),
|
|
10
|
+
supportedLanguages: z
|
|
11
|
+
.array(z.string())
|
|
12
|
+
.default(["en"])
|
|
13
|
+
.describe("List of supported language codes"),
|
|
14
|
+
defaultNamespace: z
|
|
15
|
+
.string()
|
|
16
|
+
.default("translation")
|
|
17
|
+
.describe("Default translation namespace"),
|
|
18
|
+
});
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Validate a configuration object against the I18n schema.
|
|
22
|
+
* Throws ZodError if validation fails.
|
|
23
|
+
*/
|
|
24
|
+
export const validateI18nConfig = (
|
|
25
|
+
config: unknown,
|
|
26
|
+
): ReturnType<typeof I18nConfigSchema.parse> => {
|
|
27
|
+
return I18nConfigSchema.parse(config);
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Safe version of validateI18nConfig.
|
|
32
|
+
* Returns { success: true, data } or { success: false, errors }.
|
|
33
|
+
*/
|
|
34
|
+
export const safeValidateI18nConfig = (
|
|
35
|
+
config: unknown,
|
|
36
|
+
):
|
|
37
|
+
| { success: true; data: z.infer<typeof I18nConfigSchema> }
|
|
38
|
+
| { success: false; errors: z.ZodError } => {
|
|
39
|
+
const result = I18nConfigSchema.safeParse(config);
|
|
40
|
+
return result.success
|
|
41
|
+
? { success: true, data: result.data }
|
|
42
|
+
: { success: false, errors: result.error };
|
|
43
|
+
};
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import type { LoggerAdapter, LoggerInput } from "../types";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Lightweight console-based logger adapter for CLI, desktop apps,
|
|
5
|
+
* and environments where structured logging is not needed.
|
|
6
|
+
*/
|
|
7
|
+
export class ConsoleLoggerAdapter implements LoggerAdapter {
|
|
8
|
+
private readonly enableColors: boolean;
|
|
9
|
+
private readonly enableTimestamps: boolean;
|
|
10
|
+
|
|
11
|
+
constructor(options?: { colors?: boolean; timestamps?: boolean }) {
|
|
12
|
+
this.enableColors = options?.colors ?? true;
|
|
13
|
+
this.enableTimestamps = options?.timestamps ?? true;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
private formatMessage(
|
|
17
|
+
level: string,
|
|
18
|
+
message: string,
|
|
19
|
+
input?: LoggerInput,
|
|
20
|
+
): string {
|
|
21
|
+
const timestamp = this.enableTimestamps
|
|
22
|
+
? `[${new Date().toISOString()}]`
|
|
23
|
+
: "";
|
|
24
|
+
const levelTag = `[${level.toUpperCase()}]`;
|
|
25
|
+
|
|
26
|
+
let output = `${timestamp} ${levelTag} ${message}`;
|
|
27
|
+
|
|
28
|
+
if (input) {
|
|
29
|
+
const structured: Record<string, unknown> = {};
|
|
30
|
+
|
|
31
|
+
if (input.data !== undefined) {
|
|
32
|
+
structured["data"] = input.data;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
if (input.details !== undefined) {
|
|
36
|
+
structured["details"] = input.details;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
if (Object.keys(structured).length > 0) {
|
|
40
|
+
output += ` ${JSON.stringify(structured)}`;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
return output;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
private colorize(text: string, color: string): string {
|
|
48
|
+
if (!this.enableColors) return text;
|
|
49
|
+
|
|
50
|
+
const colors: Record<string, string> = {
|
|
51
|
+
reset: "\x1b[0m",
|
|
52
|
+
red: "\x1b[31m",
|
|
53
|
+
yellow: "\x1b[33m",
|
|
54
|
+
blue: "\x1b[34m",
|
|
55
|
+
gray: "\x1b[90m",
|
|
56
|
+
magenta: "\x1b[35m",
|
|
57
|
+
};
|
|
58
|
+
|
|
59
|
+
return `${colors[color] || ""}${text}${colors["reset"]}`;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
log(message: string, input?: LoggerInput): void {
|
|
63
|
+
this.info(message, input);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
info(message: string, input?: LoggerInput): void {
|
|
67
|
+
const formatted = this.formatMessage("info", message, input);
|
|
68
|
+
console.log(this.colorize(formatted, "blue"));
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
trace(message: string, input?: LoggerInput): void {
|
|
72
|
+
const formatted = this.formatMessage("trace", message, input);
|
|
73
|
+
console.log(this.colorize(formatted, "gray"));
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
warn(message: string, input?: LoggerInput): void {
|
|
77
|
+
const formatted = this.formatMessage("warn", message, input);
|
|
78
|
+
console.warn(this.colorize(formatted, "yellow"));
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
error(message: string, input?: LoggerInput): void {
|
|
82
|
+
const formatted = this.formatMessage("error", message, input);
|
|
83
|
+
console.error(this.colorize(formatted, "red"));
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
fatal(message: string, input?: LoggerInput): void {
|
|
87
|
+
const formatted = this.formatMessage("fatal", message, input);
|
|
88
|
+
console.error(this.colorize(formatted, "magenta"));
|
|
89
|
+
}
|
|
90
|
+
}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import pino from "pino";
|
|
2
|
+
|
|
3
|
+
import { createPinoConfig } from "../config";
|
|
4
|
+
import type { LoggerAdapter, LoggerInput } from "../types";
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Pino-based logger adapter for production microservices
|
|
8
|
+
* providing structured, high-performance logging.
|
|
9
|
+
*/
|
|
10
|
+
export class PinoLoggerAdapter implements LoggerAdapter {
|
|
11
|
+
private readonly pinoLogger: pino.BaseLogger;
|
|
12
|
+
|
|
13
|
+
constructor(
|
|
14
|
+
config?: pino.LoggerOptions,
|
|
15
|
+
destination?: pino.DestinationStream,
|
|
16
|
+
) {
|
|
17
|
+
this.pinoLogger = pino(config ?? createPinoConfig(), destination);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Get the underlying Pino logger instance for advanced usage
|
|
22
|
+
*/
|
|
23
|
+
getPinoInstance(): pino.BaseLogger {
|
|
24
|
+
return this.pinoLogger;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
log(message: string, input?: LoggerInput): void {
|
|
28
|
+
this.info(message, input);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
info(message: string, input?: LoggerInput): void {
|
|
32
|
+
this.pinoLogger.info(
|
|
33
|
+
{ data: input?.data, details: input?.details },
|
|
34
|
+
message,
|
|
35
|
+
);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
trace(message: string, input?: LoggerInput): void {
|
|
39
|
+
this.pinoLogger.trace(
|
|
40
|
+
{ data: input?.data, details: input?.details },
|
|
41
|
+
message,
|
|
42
|
+
);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
warn(message: string, input?: LoggerInput): void {
|
|
46
|
+
this.pinoLogger.warn(
|
|
47
|
+
{ data: input?.data, details: input?.details },
|
|
48
|
+
message,
|
|
49
|
+
);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
error(message: string, input?: LoggerInput): void {
|
|
53
|
+
this.pinoLogger.error(
|
|
54
|
+
{ data: input?.data, details: input?.details },
|
|
55
|
+
message,
|
|
56
|
+
);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
fatal(message: string, input?: LoggerInput): void {
|
|
60
|
+
this.pinoLogger.fatal(
|
|
61
|
+
{ data: input?.data, details: input?.details },
|
|
62
|
+
message,
|
|
63
|
+
);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import type pino from "pino";
|
|
2
|
+
|
|
3
|
+
export interface PinoConfigOptions {
|
|
4
|
+
env?: string;
|
|
5
|
+
serviceName?: string;
|
|
6
|
+
appVersion?: string;
|
|
7
|
+
appEnv?: string;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Default Pino logger configuration with sensible fallbacks.
|
|
12
|
+
* - Uses pino-pretty in non-production environments for readability
|
|
13
|
+
* - Emits structured JSON in production
|
|
14
|
+
*/
|
|
15
|
+
export const createPinoConfig = (
|
|
16
|
+
options?: PinoConfigOptions,
|
|
17
|
+
): pino.LoggerOptions => {
|
|
18
|
+
const env = options?.env ?? process.env["NODE_ENV"] ?? "development";
|
|
19
|
+
const isPretty = env !== "production";
|
|
20
|
+
|
|
21
|
+
const transport = isPretty
|
|
22
|
+
? {
|
|
23
|
+
target: "pino-pretty",
|
|
24
|
+
options: {
|
|
25
|
+
colorize: true,
|
|
26
|
+
},
|
|
27
|
+
}
|
|
28
|
+
: undefined;
|
|
29
|
+
|
|
30
|
+
return {
|
|
31
|
+
level: process.env["LOG_LEVEL"] ?? "info",
|
|
32
|
+
...(transport ? { transport } : {}),
|
|
33
|
+
formatters: {
|
|
34
|
+
bindings: (bindings) => {
|
|
35
|
+
return {
|
|
36
|
+
pid: bindings["pid"],
|
|
37
|
+
service:
|
|
38
|
+
options?.serviceName ?? process.env["SERVICE_NAME"] ?? "zacatl",
|
|
39
|
+
environment: env,
|
|
40
|
+
app: {
|
|
41
|
+
version:
|
|
42
|
+
options?.appVersion ?? process.env["APP_VERSION"] ?? "0.0.0",
|
|
43
|
+
environment: options?.appEnv ?? process.env["APP_ENV"] ?? env,
|
|
44
|
+
},
|
|
45
|
+
host: bindings["hostname"],
|
|
46
|
+
};
|
|
47
|
+
},
|
|
48
|
+
level: (label) => {
|
|
49
|
+
return { level: label.toLowerCase() };
|
|
50
|
+
},
|
|
51
|
+
},
|
|
52
|
+
};
|
|
53
|
+
};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Logs module - Pluggable structured logging
|
|
3
|
+
* @module logs
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
export { logger, createLogger } from "./logger";
|
|
7
|
+
export type {
|
|
8
|
+
Logger,
|
|
9
|
+
LoggerAdapter,
|
|
10
|
+
LoggerInput,
|
|
11
|
+
LoggerAdapterType,
|
|
12
|
+
PinoLoggerConfig,
|
|
13
|
+
} from "./types";
|
|
14
|
+
export { createPinoConfig, type PinoConfigOptions } from "./config";
|
|
15
|
+
export { ConsoleLoggerAdapter } from "./adapters/console-adapter";
|
|
16
|
+
export { PinoLoggerAdapter } from "./adapters/pino-adapter";
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { PinoLoggerAdapter } from "./adapters/pino-adapter";
|
|
2
|
+
import type { Logger, LoggerAdapter, LoggerInput } from "./types";
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Creates a logger instance with a specific adapter.
|
|
6
|
+
* This is the recommended way to create loggers with custom adapters.
|
|
7
|
+
*
|
|
8
|
+
* @param adapter - LoggerAdapter implementation (defaults to PinoLoggerAdapter)
|
|
9
|
+
* @returns Logger instance
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```typescript
|
|
13
|
+
* import { createLogger, ConsoleLoggerAdapter } from '@sentzunhat/zacatl';
|
|
14
|
+
*
|
|
15
|
+
* // Default Pino logger
|
|
16
|
+
* const logger = createLogger();
|
|
17
|
+
*
|
|
18
|
+
* // Console logger for CLI apps
|
|
19
|
+
* const cliLogger = createLogger(new ConsoleLoggerAdapter());
|
|
20
|
+
*
|
|
21
|
+
* // Custom adapter
|
|
22
|
+
* class WinstonAdapter implements LoggerAdapter { ... }
|
|
23
|
+
* const customLogger = createLogger(new WinstonAdapter());
|
|
24
|
+
* ```
|
|
25
|
+
*/
|
|
26
|
+
export const createLogger = (adapter?: LoggerAdapter): Logger => {
|
|
27
|
+
const adapterInstance = adapter ?? new PinoLoggerAdapter();
|
|
28
|
+
|
|
29
|
+
return {
|
|
30
|
+
log: (message: string, input?: LoggerInput) =>
|
|
31
|
+
adapterInstance.log(message, input),
|
|
32
|
+
info: (message: string, input?: LoggerInput) =>
|
|
33
|
+
adapterInstance.info(message, input),
|
|
34
|
+
trace: (message: string, input?: LoggerInput) =>
|
|
35
|
+
adapterInstance.trace(message, input),
|
|
36
|
+
warn: (message: string, input?: LoggerInput) =>
|
|
37
|
+
adapterInstance.warn(message, input),
|
|
38
|
+
error: (message: string, input?: LoggerInput) =>
|
|
39
|
+
adapterInstance.error(message, input),
|
|
40
|
+
fatal: (message: string, input?: LoggerInput) =>
|
|
41
|
+
adapterInstance.fatal(message, input),
|
|
42
|
+
};
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Default logger instance with Pino adapter.
|
|
47
|
+
* Provides structured JSON logging ready for Prometheus, OpenTelemetry, and log aggregation.
|
|
48
|
+
*
|
|
49
|
+
* For custom adapters, use `createLogger()`:
|
|
50
|
+
* ```typescript
|
|
51
|
+
* import { createLogger, ConsoleLoggerAdapter } from '@sentzunhat/zacatl';
|
|
52
|
+
* const cliLogger = createLogger(new ConsoleLoggerAdapter());
|
|
53
|
+
* ```
|
|
54
|
+
*
|
|
55
|
+
* @example
|
|
56
|
+
* ```typescript
|
|
57
|
+
* import { logger } from '@sentzunhat/zacatl';
|
|
58
|
+
*
|
|
59
|
+
* logger.info('Application started');
|
|
60
|
+
* logger.error('Request failed', {
|
|
61
|
+
* data: { userId: 123, endpoint: '/api/users' },
|
|
62
|
+
* details: { statusCode: 500 }
|
|
63
|
+
* });
|
|
64
|
+
* ```
|
|
65
|
+
*/
|
|
66
|
+
export const logger: Logger = createLogger();
|