@sentzunhat/zacatl 0.0.14 → 0.0.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +280 -211
- 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 +19 -0
- package/build/index.d.ts.map +1 -0
- package/build/index.js +15 -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/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/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 +92 -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 +19 -0
- package/build/service/architecture/infrastructure/repositories/abstract.d.ts.map +1 -0
- package/build/service/architecture/infrastructure/repositories/abstract.js +62 -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 +66 -26
- 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 +29 -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/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/adapters/mongoose-adapter.ts +134 -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 +105 -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,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Input structure for logger methods
|
|
3
|
+
*/
|
|
4
|
+
export type LoggerInput =
|
|
5
|
+
| {
|
|
6
|
+
data?: unknown;
|
|
7
|
+
details?: unknown;
|
|
8
|
+
}
|
|
9
|
+
| undefined;
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Logger interface that wraps Pino with structured logging
|
|
13
|
+
*/
|
|
14
|
+
export interface Logger {
|
|
15
|
+
log: (message: string, input?: LoggerInput) => void;
|
|
16
|
+
info: (message: string, input?: LoggerInput) => void;
|
|
17
|
+
trace: (message: string, input?: LoggerInput) => void;
|
|
18
|
+
warn: (message: string, input?: LoggerInput) => void;
|
|
19
|
+
error: (message: string, input?: LoggerInput) => void;
|
|
20
|
+
fatal: (message: string, input?: LoggerInput) => void;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Logger adapter interface - implement this to create custom log transports
|
|
25
|
+
* (Winston, Bunyan, Console, CloudWatch, etc.)
|
|
26
|
+
*/
|
|
27
|
+
export interface LoggerAdapter {
|
|
28
|
+
log: (message: string, input?: LoggerInput) => void;
|
|
29
|
+
info: (message: string, input?: LoggerInput) => void;
|
|
30
|
+
trace: (message: string, input?: LoggerInput) => void;
|
|
31
|
+
warn: (message: string, input?: LoggerInput) => void;
|
|
32
|
+
error: (message: string, input?: LoggerInput) => void;
|
|
33
|
+
fatal: (message: string, input?: LoggerInput) => void;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* Re-export Pino types for convenience
|
|
38
|
+
*/
|
|
39
|
+
export type { LoggerOptions as PinoLoggerConfig } from "pino";
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Adapter type identifier for built-in adapters
|
|
43
|
+
*/
|
|
44
|
+
export type LoggerAdapterType = "pino" | "console";
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import type { RuntimeInfo, RuntimeType } from "./types";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Detects the current JavaScript runtime environment
|
|
5
|
+
* @returns Runtime information including type and version
|
|
6
|
+
*/
|
|
7
|
+
export const detectRuntime = (): RuntimeInfo => {
|
|
8
|
+
let type: RuntimeType = "unknown";
|
|
9
|
+
let version: string | undefined = undefined;
|
|
10
|
+
|
|
11
|
+
// Check for Bun
|
|
12
|
+
if (typeof Bun !== "undefined") {
|
|
13
|
+
type = "bun";
|
|
14
|
+
version = Bun.version;
|
|
15
|
+
}
|
|
16
|
+
// Check for Node.js
|
|
17
|
+
else if (typeof process !== "undefined" && process.versions?.node) {
|
|
18
|
+
type = "node";
|
|
19
|
+
version = process.versions.node;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
const result: RuntimeInfo = {
|
|
23
|
+
type,
|
|
24
|
+
isBun: type === "bun",
|
|
25
|
+
isNode: type === "node",
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
if (version !== undefined) {
|
|
29
|
+
result.version = version;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Check if the current runtime is Bun
|
|
37
|
+
* @returns true if running on Bun
|
|
38
|
+
*/
|
|
39
|
+
export const isBun = (): boolean => typeof Bun !== "undefined";
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Check if the current runtime is Node.js
|
|
43
|
+
* @returns true if running on Node.js
|
|
44
|
+
*/
|
|
45
|
+
export const isNode = (): boolean =>
|
|
46
|
+
typeof Bun === "undefined" &&
|
|
47
|
+
typeof process !== "undefined" &&
|
|
48
|
+
!!process.versions?.node;
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* Get the current runtime type
|
|
52
|
+
* @returns The detected runtime type
|
|
53
|
+
*/
|
|
54
|
+
export const getRuntimeType = (): RuntimeType => detectRuntime().type;
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* Get the current runtime version
|
|
58
|
+
* @returns The runtime version string or undefined
|
|
59
|
+
*/
|
|
60
|
+
export const getRuntimeVersion = (): string | undefined =>
|
|
61
|
+
detectRuntime().version;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Supported JavaScript runtimes
|
|
3
|
+
*/
|
|
4
|
+
export type RuntimeType = "node" | "bun" | "unknown";
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Runtime detection result
|
|
8
|
+
*/
|
|
9
|
+
export interface RuntimeInfo {
|
|
10
|
+
/** The detected runtime type */
|
|
11
|
+
type: RuntimeType;
|
|
12
|
+
/** Runtime version string (if available) */
|
|
13
|
+
version?: string;
|
|
14
|
+
/** Whether the runtime is Bun */
|
|
15
|
+
isBun: boolean;
|
|
16
|
+
/** Whether the runtime is Node.js */
|
|
17
|
+
isNode: boolean;
|
|
18
|
+
}
|
|
@@ -3,14 +3,16 @@ import { z } from "zod";
|
|
|
3
3
|
import { HTTPMethods, FastifySchema, FastifyReply } from "fastify";
|
|
4
4
|
|
|
5
5
|
import { RouteHandler } from "./route-handler";
|
|
6
|
-
import { Request } from "../common/request";
|
|
6
|
+
import type { Request } from "../common/request";
|
|
7
|
+
|
|
8
|
+
export type { Request } from "../common/request";
|
|
7
9
|
|
|
8
10
|
export type RouteSchema<
|
|
9
11
|
TBody = void,
|
|
10
12
|
TQuerystring = void,
|
|
11
13
|
TParams = void,
|
|
12
14
|
THeaders = void,
|
|
13
|
-
TResponse = void
|
|
15
|
+
TResponse = void,
|
|
14
16
|
> = {
|
|
15
17
|
body?: z.ZodSchema<TBody>;
|
|
16
18
|
querystring?: z.ZodSchema<TQuerystring>;
|
|
@@ -32,9 +34,8 @@ export abstract class AbstractRouteHandler<
|
|
|
32
34
|
TQuerystring = void,
|
|
33
35
|
TResponse = void,
|
|
34
36
|
TParams = void,
|
|
35
|
-
THeaders = void
|
|
36
|
-
> implements RouteHandler<TBody, TQuerystring, TParams, THeaders>
|
|
37
|
-
{
|
|
37
|
+
THeaders = void,
|
|
38
|
+
> implements RouteHandler<TBody, TQuerystring, TParams, THeaders> {
|
|
38
39
|
public url: string;
|
|
39
40
|
public method: HTTPMethods;
|
|
40
41
|
public schema: FastifySchema;
|
|
@@ -47,12 +48,12 @@ export abstract class AbstractRouteHandler<
|
|
|
47
48
|
|
|
48
49
|
abstract handler(
|
|
49
50
|
request: Request<TBody, TQuerystring, TParams, THeaders>,
|
|
50
|
-
reply: FastifyReply
|
|
51
|
+
reply: FastifyReply,
|
|
51
52
|
): Promise<HandlerOutput<TResponse>> | HandlerOutput<TResponse>;
|
|
52
53
|
|
|
53
54
|
public async execute(
|
|
54
55
|
request: Request<TBody, TQuerystring, TParams, THeaders>,
|
|
55
|
-
reply: FastifyReply
|
|
56
|
+
reply: FastifyReply,
|
|
56
57
|
): Promise<void> {
|
|
57
58
|
const response = await this.handler(request, reply);
|
|
58
59
|
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { FastifySchema } from "fastify";
|
|
2
2
|
import { AbstractRouteHandler } from "./abstract";
|
|
3
3
|
|
|
4
|
+
export type { Request } from "./abstract";
|
|
5
|
+
|
|
4
6
|
export type PostRouteHandlerConstructor = {
|
|
5
7
|
url: string;
|
|
6
8
|
schema: FastifySchema;
|
|
@@ -10,7 +12,7 @@ export abstract class PostRouteHandler<
|
|
|
10
12
|
TBody = void,
|
|
11
13
|
TResponse = void,
|
|
12
14
|
TQuerystring = void,
|
|
13
|
-
TParams = void
|
|
15
|
+
TParams = void,
|
|
14
16
|
> extends AbstractRouteHandler<TBody, TQuerystring, TResponse, TParams> {
|
|
15
17
|
constructor(args: PostRouteHandlerConstructor) {
|
|
16
18
|
super({
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { AbstractArchitecture, Constructor } from "../architecture";
|
|
2
|
+
import { Provider } from "./provider";
|
|
3
|
+
import { container } from "tsyringe";
|
|
4
|
+
|
|
5
|
+
export type ConfigDomain = {
|
|
6
|
+
providers: Array<Constructor>;
|
|
7
|
+
};
|
|
8
|
+
|
|
9
|
+
export class Domain extends AbstractArchitecture {
|
|
10
|
+
private config: ConfigDomain;
|
|
11
|
+
private providers: Array<Provider> = [];
|
|
12
|
+
|
|
13
|
+
constructor(config: ConfigDomain) {
|
|
14
|
+
super();
|
|
15
|
+
|
|
16
|
+
this.config = config;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
public async start(): Promise<void> {
|
|
20
|
+
this.registerDependencies(this.config.providers);
|
|
21
|
+
|
|
22
|
+
// Auto-start providers that implement the start method
|
|
23
|
+
for (const ProviderClass of this.config.providers) {
|
|
24
|
+
if (container.isRegistered(ProviderClass.name)) {
|
|
25
|
+
const provider = container.resolve(ProviderClass.name) as Provider;
|
|
26
|
+
if (
|
|
27
|
+
provider instanceof Provider &&
|
|
28
|
+
typeof provider.start === "function"
|
|
29
|
+
) {
|
|
30
|
+
await provider.start();
|
|
31
|
+
this.providers.push(provider);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
export * from "./repositories";
|
|
2
|
+
export * from "./infrastructure";
|
|
3
|
+
|
|
4
|
+
// Re-export Mongoose for user convenience
|
|
5
|
+
// Users can import directly from @sentzunhat/zacatl instead of installing mongoose
|
|
6
|
+
export {
|
|
7
|
+
Schema,
|
|
8
|
+
Model,
|
|
9
|
+
Types,
|
|
10
|
+
connect,
|
|
11
|
+
connection,
|
|
12
|
+
createConnection,
|
|
13
|
+
} from "mongoose";
|
|
14
|
+
|
|
15
|
+
export type {
|
|
16
|
+
Document,
|
|
17
|
+
SchemaDefinition,
|
|
18
|
+
SchemaOptions,
|
|
19
|
+
SchemaTypeOptions,
|
|
20
|
+
Connection,
|
|
21
|
+
Mongoose,
|
|
22
|
+
ObjectId,
|
|
23
|
+
UpdateQuery,
|
|
24
|
+
QueryOptions,
|
|
25
|
+
PopulateOptions,
|
|
26
|
+
HydratedDocument,
|
|
27
|
+
InferSchemaType,
|
|
28
|
+
} from "mongoose";
|
|
29
|
+
|
|
30
|
+
// Re-export Sequelize for user convenience
|
|
31
|
+
// Users can import directly from @sentzunhat/zacatl instead of installing sequelize
|
|
32
|
+
export { DataTypes, Sequelize, Model as SequelizeModelClass } from "sequelize";
|
|
33
|
+
|
|
34
|
+
export type {
|
|
35
|
+
ModelStatic,
|
|
36
|
+
QueryInterface,
|
|
37
|
+
Transaction,
|
|
38
|
+
Options as SequelizeOptions,
|
|
39
|
+
ModelAttributes,
|
|
40
|
+
ModelOptions,
|
|
41
|
+
FindOptions,
|
|
42
|
+
CreateOptions,
|
|
43
|
+
UpdateOptions,
|
|
44
|
+
DestroyOptions,
|
|
45
|
+
WhereOptions,
|
|
46
|
+
Order,
|
|
47
|
+
Includeable,
|
|
48
|
+
} from "sequelize";
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
import importedMongoose, {
|
|
2
|
+
connection,
|
|
3
|
+
Model as MongooseModel,
|
|
4
|
+
Mongoose,
|
|
5
|
+
} from "mongoose";
|
|
6
|
+
import { v4 as uuidv4 } from "uuid";
|
|
7
|
+
import { container } from "tsyringe";
|
|
8
|
+
import type {
|
|
9
|
+
MongooseRepositoryConfig,
|
|
10
|
+
ORMAdapter,
|
|
11
|
+
LeanWithMeta,
|
|
12
|
+
} from "../../repositories/types";
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* MongooseAdapter - Handles Mongoose-specific ORM operations
|
|
16
|
+
*
|
|
17
|
+
* This adapter wraps Mongoose model operations and provides a consistent
|
|
18
|
+
* interface for the repository layer. It handles document transformation,
|
|
19
|
+
* ID normalization, and timestamp management.
|
|
20
|
+
*/
|
|
21
|
+
export class MongooseAdapter<D, I, O> implements ORMAdapter<D, I, O> {
|
|
22
|
+
public readonly model: MongooseModel<D>;
|
|
23
|
+
private readonly config: MongooseRepositoryConfig<D>;
|
|
24
|
+
|
|
25
|
+
constructor(config: MongooseRepositoryConfig<D>) {
|
|
26
|
+
this.config = config;
|
|
27
|
+
const mongoose = connection.db?.databaseName
|
|
28
|
+
? importedMongoose
|
|
29
|
+
: container.resolve<Mongoose>(Mongoose);
|
|
30
|
+
|
|
31
|
+
const { name, schema } = this.config;
|
|
32
|
+
|
|
33
|
+
if (name) {
|
|
34
|
+
this.model = mongoose.model<D>(name, schema);
|
|
35
|
+
} else {
|
|
36
|
+
this.model = mongoose.model<D>(uuidv4(), schema);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
this.model.createCollection();
|
|
40
|
+
this.model.createIndexes();
|
|
41
|
+
this.model.init();
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
public toLean(input: unknown): O | null {
|
|
45
|
+
if (!input) {
|
|
46
|
+
return null;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
let base: LeanWithMeta<O>;
|
|
50
|
+
|
|
51
|
+
if (
|
|
52
|
+
input &&
|
|
53
|
+
typeof input === "object" &&
|
|
54
|
+
"toObject" in input &&
|
|
55
|
+
typeof (input as unknown as Record<string, unknown>)["toObject"] ===
|
|
56
|
+
"function"
|
|
57
|
+
) {
|
|
58
|
+
base = (
|
|
59
|
+
input as unknown as {
|
|
60
|
+
toObject: (opt: any) => LeanWithMeta<O>;
|
|
61
|
+
}
|
|
62
|
+
).toObject({
|
|
63
|
+
virtuals: true,
|
|
64
|
+
}) as LeanWithMeta<O>;
|
|
65
|
+
} else {
|
|
66
|
+
base = input as LeanWithMeta<O>;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
const result: O = {
|
|
70
|
+
...(base as O),
|
|
71
|
+
id:
|
|
72
|
+
typeof base.id === "string"
|
|
73
|
+
? base.id
|
|
74
|
+
: typeof base._id === "string"
|
|
75
|
+
? base._id
|
|
76
|
+
: base._id !== undefined
|
|
77
|
+
? String(base._id)
|
|
78
|
+
: "",
|
|
79
|
+
createdAt:
|
|
80
|
+
base.createdAt instanceof Date
|
|
81
|
+
? base.createdAt
|
|
82
|
+
: base.createdAt
|
|
83
|
+
? new Date(base.createdAt as string | number)
|
|
84
|
+
: new Date(),
|
|
85
|
+
updatedAt:
|
|
86
|
+
base.updatedAt instanceof Date
|
|
87
|
+
? base.updatedAt
|
|
88
|
+
: base.updatedAt
|
|
89
|
+
? new Date(base.updatedAt as string | number)
|
|
90
|
+
: new Date(),
|
|
91
|
+
} as O;
|
|
92
|
+
|
|
93
|
+
return result;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
async findById(id: string): Promise<O | null> {
|
|
97
|
+
const entity = await this.model
|
|
98
|
+
.findById(id)
|
|
99
|
+
.lean<O>({ virtuals: true })
|
|
100
|
+
.exec();
|
|
101
|
+
|
|
102
|
+
return this.toLean(entity);
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
async create(entity: I): Promise<O> {
|
|
106
|
+
const document = await this.model.create(entity as any);
|
|
107
|
+
|
|
108
|
+
const leanDocument = this.toLean(document);
|
|
109
|
+
|
|
110
|
+
if (!leanDocument) {
|
|
111
|
+
throw new Error("failed to create document");
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
return leanDocument;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
async update(id: string, update: Partial<I>): Promise<O | null> {
|
|
118
|
+
const entity = await this.model
|
|
119
|
+
.findByIdAndUpdate(id, update as any, { new: true })
|
|
120
|
+
.lean<O>({ virtuals: true })
|
|
121
|
+
.exec();
|
|
122
|
+
|
|
123
|
+
return this.toLean(entity);
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
async delete(id: string): Promise<O | null> {
|
|
127
|
+
const entity = await this.model
|
|
128
|
+
.findByIdAndDelete(id)
|
|
129
|
+
.lean<O>({ virtuals: true })
|
|
130
|
+
.exec();
|
|
131
|
+
|
|
132
|
+
return this.toLean(entity);
|
|
133
|
+
}
|
|
134
|
+
}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { Model, ModelStatic } from "sequelize";
|
|
2
|
+
import type {
|
|
3
|
+
SequelizeRepositoryConfig,
|
|
4
|
+
ORMAdapter,
|
|
5
|
+
} from "../../repositories/types";
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* SequelizeAdapter - Handles Sequelize-specific ORM operations
|
|
9
|
+
*
|
|
10
|
+
* This adapter wraps Sequelize model operations and provides a consistent
|
|
11
|
+
* interface for the repository layer. It handles plain object transformation,
|
|
12
|
+
* ID normalization, and timestamp management.
|
|
13
|
+
*/
|
|
14
|
+
export class SequelizeAdapter<D extends Model, I, O> implements ORMAdapter<
|
|
15
|
+
D,
|
|
16
|
+
I,
|
|
17
|
+
O
|
|
18
|
+
> {
|
|
19
|
+
public readonly model: ModelStatic<D>;
|
|
20
|
+
|
|
21
|
+
constructor(config: SequelizeRepositoryConfig<D>) {
|
|
22
|
+
this.model = config.model;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
public toLean(input: unknown): O | null {
|
|
26
|
+
if (!input) return null;
|
|
27
|
+
const plain =
|
|
28
|
+
input instanceof Model ? input.get({ plain: true }) : (input as O);
|
|
29
|
+
|
|
30
|
+
// Ensure id, createdAt, updatedAt exist and are correct types
|
|
31
|
+
return {
|
|
32
|
+
...(plain as O),
|
|
33
|
+
id: String((plain as any).id || (plain as any)._id || ""),
|
|
34
|
+
createdAt: (plain as any).createdAt
|
|
35
|
+
? new Date((plain as any).createdAt)
|
|
36
|
+
: new Date(),
|
|
37
|
+
updatedAt: (plain as any).updatedAt
|
|
38
|
+
? new Date((plain as any).updatedAt)
|
|
39
|
+
: new Date(),
|
|
40
|
+
} as O;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
async findById(id: string): Promise<O | null> {
|
|
44
|
+
const entity = await this.model.findByPk(id);
|
|
45
|
+
return this.toLean(entity);
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
async create(entity: I): Promise<O> {
|
|
49
|
+
const document = await this.model.create(entity as any);
|
|
50
|
+
return this.toLean(document) as O;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
async update(id: string, update: Partial<I>): Promise<O | null> {
|
|
54
|
+
const [affectedCount] = await this.model.update(update as any, {
|
|
55
|
+
where: { id } as any,
|
|
56
|
+
});
|
|
57
|
+
|
|
58
|
+
if (affectedCount === 0) {
|
|
59
|
+
return null;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
return this.findById(id);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
async delete(id: string): Promise<O | null> {
|
|
66
|
+
const entity = await this.findById(id);
|
|
67
|
+
if (!entity) return null;
|
|
68
|
+
|
|
69
|
+
await this.model.destroy({
|
|
70
|
+
where: { id } as any,
|
|
71
|
+
});
|
|
72
|
+
|
|
73
|
+
return entity;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import { Model as MongooseModel } from "mongoose";
|
|
2
|
+
import { Model, ModelStatic } from "sequelize";
|
|
3
|
+
import {
|
|
4
|
+
BaseRepositoryConfig,
|
|
5
|
+
Repository,
|
|
6
|
+
MongooseRepositoryConfig,
|
|
7
|
+
SequelizeRepositoryConfig,
|
|
8
|
+
ORMAdapter,
|
|
9
|
+
ORMType,
|
|
10
|
+
} from "./types";
|
|
11
|
+
import { MongooseAdapter } from "../orm/adapters/mongoose-adapter";
|
|
12
|
+
import { SequelizeAdapter } from "../orm/adapters/sequelize-adapter";
|
|
13
|
+
|
|
14
|
+
export * from "./types";
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Type guard to check if config is for Mongoose
|
|
18
|
+
*/
|
|
19
|
+
const isMongooseConfig = <D>(
|
|
20
|
+
config: BaseRepositoryConfig<D>,
|
|
21
|
+
): config is MongooseRepositoryConfig<D> => {
|
|
22
|
+
return config.type === ORMType.Mongoose;
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Type guard to check if config is for Sequelize
|
|
27
|
+
*/
|
|
28
|
+
const isSequelizeConfig = <D extends Model>(
|
|
29
|
+
config: BaseRepositoryConfig<D>,
|
|
30
|
+
): config is SequelizeRepositoryConfig<D> => {
|
|
31
|
+
return config.type === ORMType.Sequelize;
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* BaseRepository - Abstract base class for all repositories
|
|
36
|
+
*
|
|
37
|
+
* Uses the adapter pattern to support multiple ORMs (Mongoose, Sequelize, etc.)
|
|
38
|
+
* without circular dependencies. Adapters are imported from separate files in
|
|
39
|
+
* the orm/ folder.
|
|
40
|
+
*/
|
|
41
|
+
export abstract class BaseRepository<D, I, O> implements Repository<D, I, O> {
|
|
42
|
+
private adapter: ORMAdapter<D, I, O>;
|
|
43
|
+
|
|
44
|
+
constructor(config: BaseRepositoryConfig<D>) {
|
|
45
|
+
if (isMongooseConfig<D>(config)) {
|
|
46
|
+
// TypeScript knows config is MongooseRepositoryConfig<D>
|
|
47
|
+
this.adapter = new MongooseAdapter<D, I, O>(config);
|
|
48
|
+
} else if (isSequelizeConfig(config)) {
|
|
49
|
+
// TypeScript knows config is SequelizeRepositoryConfig
|
|
50
|
+
this.adapter = new SequelizeAdapter<Model, I, O>(config);
|
|
51
|
+
} else {
|
|
52
|
+
// Exhaustiveness check - should never reach here with proper types
|
|
53
|
+
const exhaustive: never = config;
|
|
54
|
+
throw new Error(
|
|
55
|
+
`Invalid repository configuration. Received: ${JSON.stringify(exhaustive)}`,
|
|
56
|
+
);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
get model(): MongooseModel<D> | ModelStatic<any> {
|
|
61
|
+
return this.adapter.model;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
public isMongoose(): boolean {
|
|
65
|
+
return this.adapter instanceof MongooseAdapter;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
public isSequelize(): boolean {
|
|
69
|
+
return this.adapter instanceof SequelizeAdapter;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
public getMongooseModel(): MongooseModel<D> {
|
|
73
|
+
if (!this.isMongoose()) {
|
|
74
|
+
throw new Error("Repository is not using Mongoose");
|
|
75
|
+
}
|
|
76
|
+
return this.adapter.model as MongooseModel<D>;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
public getSequelizeModel(): ModelStatic<any> {
|
|
80
|
+
if (!this.isSequelize()) {
|
|
81
|
+
throw new Error("Repository is not using Sequelize");
|
|
82
|
+
}
|
|
83
|
+
return this.adapter.model as ModelStatic<any>;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
public toLean(input: unknown): O | null {
|
|
87
|
+
return this.adapter.toLean(input);
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
async findById(id: string): Promise<O | null> {
|
|
91
|
+
return this.adapter.findById(id);
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
async create(entity: I): Promise<O> {
|
|
95
|
+
return this.adapter.create(entity);
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
async update(id: string, update: Partial<I>): Promise<O | null> {
|
|
99
|
+
return this.adapter.update(id, update);
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
async delete(id: string): Promise<O | null> {
|
|
103
|
+
return this.adapter.delete(id);
|
|
104
|
+
}
|
|
105
|
+
}
|