@kabyeon/nexusjs 0.6.5
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/LICENSE +21 -0
- package/README.md +860 -0
- package/dist/auth/auth.controller.d.ts +175 -0
- package/dist/auth/auth.controller.d.ts.map +1 -0
- package/dist/auth/auth.d.ts +47 -0
- package/dist/auth/auth.d.ts.map +1 -0
- package/dist/auth/auth.module.d.ts +34 -0
- package/dist/auth/auth.module.d.ts.map +1 -0
- package/dist/auth/auth.service.d.ts +192 -0
- package/dist/auth/auth.service.d.ts.map +1 -0
- package/dist/auth/decorators/current-user.d.ts +58 -0
- package/dist/auth/decorators/current-user.d.ts.map +1 -0
- package/dist/auth/index.d.ts +43 -0
- package/dist/auth/index.d.ts.map +1 -0
- package/dist/auth/index.js +730 -0
- package/dist/auth/index.js.map +25 -0
- package/dist/auth/middleware.d.ts +50 -0
- package/dist/auth/middleware.d.ts.map +1 -0
- package/dist/auth/types.d.ts +135 -0
- package/dist/auth/types.d.ts.map +1 -0
- package/dist/cache/cache.module.d.ts +22 -0
- package/dist/cache/cache.module.d.ts.map +1 -0
- package/dist/cache/cache.service.d.ts +37 -0
- package/dist/cache/cache.service.d.ts.map +1 -0
- package/dist/cache/index.d.ts +9 -0
- package/dist/cache/index.d.ts.map +1 -0
- package/dist/cache/index.js +814 -0
- package/dist/cache/index.js.map +25 -0
- package/dist/cache/stores/drizzle.d.ts +76 -0
- package/dist/cache/stores/drizzle.d.ts.map +1 -0
- package/dist/cache/stores/index.d.ts +10 -0
- package/dist/cache/stores/index.d.ts.map +1 -0
- package/dist/cache/stores/memory.d.ts +34 -0
- package/dist/cache/stores/memory.d.ts.map +1 -0
- package/dist/cache/stores/redis.d.ts +46 -0
- package/dist/cache/stores/redis.d.ts.map +1 -0
- package/dist/cache/types.d.ts +88 -0
- package/dist/cache/types.d.ts.map +1 -0
- package/dist/cli/commands/config.d.ts +44 -0
- package/dist/cli/commands/config.d.ts.map +1 -0
- package/dist/cli/commands/db-generate.d.ts +20 -0
- package/dist/cli/commands/db-generate.d.ts.map +1 -0
- package/dist/cli/commands/db-migrate.d.ts +33 -0
- package/dist/cli/commands/db-migrate.d.ts.map +1 -0
- package/dist/cli/commands/db-seed.d.ts +43 -0
- package/dist/cli/commands/db-seed.d.ts.map +1 -0
- package/dist/cli/commands/index.d.ts +11 -0
- package/dist/cli/commands/index.d.ts.map +1 -0
- package/dist/cli/commands/info.d.ts +11 -0
- package/dist/cli/commands/info.d.ts.map +1 -0
- package/dist/cli/commands/init.d.ts +38 -0
- package/dist/cli/commands/init.d.ts.map +1 -0
- package/dist/cli/commands/make-auth.d.ts +17 -0
- package/dist/cli/commands/make-auth.d.ts.map +1 -0
- package/dist/cli/commands/make-controller.d.ts +16 -0
- package/dist/cli/commands/make-controller.d.ts.map +1 -0
- package/dist/cli/commands/make-crud.d.ts +28 -0
- package/dist/cli/commands/make-crud.d.ts.map +1 -0
- package/dist/cli/commands/make-listener.d.ts +15 -0
- package/dist/cli/commands/make-listener.d.ts.map +1 -0
- package/dist/cli/commands/make-middleware.d.ts +7 -0
- package/dist/cli/commands/make-middleware.d.ts.map +1 -0
- package/dist/cli/commands/make-migration.d.ts +21 -0
- package/dist/cli/commands/make-migration.d.ts.map +1 -0
- package/dist/cli/commands/make-model.d.ts +22 -0
- package/dist/cli/commands/make-model.d.ts.map +1 -0
- package/dist/cli/commands/make-module.d.ts +11 -0
- package/dist/cli/commands/make-module.d.ts.map +1 -0
- package/dist/cli/commands/make-queue.d.ts +17 -0
- package/dist/cli/commands/make-queue.d.ts.map +1 -0
- package/dist/cli/commands/make-schedule.d.ts +17 -0
- package/dist/cli/commands/make-schedule.d.ts.map +1 -0
- package/dist/cli/commands/make-service.d.ts +7 -0
- package/dist/cli/commands/make-service.d.ts.map +1 -0
- package/dist/cli/commands/make-session.d.ts +15 -0
- package/dist/cli/commands/make-session.d.ts.map +1 -0
- package/dist/cli/commands/make-validator.d.ts +7 -0
- package/dist/cli/commands/make-validator.d.ts.map +1 -0
- package/dist/cli/commands/new.d.ts +14 -0
- package/dist/cli/commands/new.d.ts.map +1 -0
- package/dist/cli/commands/repl.d.ts +42 -0
- package/dist/cli/commands/repl.d.ts.map +1 -0
- package/dist/cli/commands/route-list.d.ts +12 -0
- package/dist/cli/commands/route-list.d.ts.map +1 -0
- package/dist/cli/core/args.d.ts +29 -0
- package/dist/cli/core/args.d.ts.map +1 -0
- package/dist/cli/core/config.d.ts +137 -0
- package/dist/cli/core/config.d.ts.map +1 -0
- package/dist/cli/core/fs.d.ts +38 -0
- package/dist/cli/core/fs.d.ts.map +1 -0
- package/dist/cli/core/index.d.ts +42 -0
- package/dist/cli/core/index.d.ts.map +1 -0
- package/dist/cli/core/logger.d.ts +46 -0
- package/dist/cli/core/logger.d.ts.map +1 -0
- package/dist/cli/core/loose-json.d.ts +26 -0
- package/dist/cli/core/loose-json.d.ts.map +1 -0
- package/dist/cli/core/prompts.d.ts +22 -0
- package/dist/cli/core/prompts.d.ts.map +1 -0
- package/dist/cli/core/template.d.ts +26 -0
- package/dist/cli/core/template.d.ts.map +1 -0
- package/dist/cli/index.d.ts +1 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +6136 -0
- package/dist/cli/index.js.map +91 -0
- package/dist/cli/templates/controller/adonis.d.ts +10 -0
- package/dist/cli/templates/controller/adonis.d.ts.map +1 -0
- package/dist/cli/templates/controller/functional.d.ts +9 -0
- package/dist/cli/templates/controller/functional.d.ts.map +1 -0
- package/dist/cli/templates/controller/nest.d.ts +17 -0
- package/dist/cli/templates/controller/nest.d.ts.map +1 -0
- package/dist/cli/templates/crud/controller.d.ts +8 -0
- package/dist/cli/templates/crud/controller.d.ts.map +1 -0
- package/dist/cli/templates/crud/dto.d.ts +8 -0
- package/dist/cli/templates/crud/dto.d.ts.map +1 -0
- package/dist/cli/templates/crud/index.d.ts +33 -0
- package/dist/cli/templates/crud/index.d.ts.map +1 -0
- package/dist/cli/templates/crud/module.d.ts +6 -0
- package/dist/cli/templates/crud/module.d.ts.map +1 -0
- package/dist/cli/templates/crud/test.d.ts +10 -0
- package/dist/cli/templates/crud/test.d.ts.map +1 -0
- package/dist/cli/templates/index.d.ts +39 -0
- package/dist/cli/templates/index.d.ts.map +1 -0
- package/dist/cli/templates/middleware/middleware.d.ts +8 -0
- package/dist/cli/templates/middleware/middleware.d.ts.map +1 -0
- package/dist/cli/templates/migration/drizzle.d.ts +12 -0
- package/dist/cli/templates/migration/drizzle.d.ts.map +1 -0
- package/dist/cli/templates/migration/sql.d.ts +10 -0
- package/dist/cli/templates/migration/sql.d.ts.map +1 -0
- package/dist/cli/templates/model/drizzle-dialect.d.ts +29 -0
- package/dist/cli/templates/model/drizzle-dialect.d.ts.map +1 -0
- package/dist/cli/templates/model/drizzle.d.ts +14 -0
- package/dist/cli/templates/model/drizzle.d.ts.map +1 -0
- package/dist/cli/templates/model/kysely.d.ts +12 -0
- package/dist/cli/templates/model/kysely.d.ts.map +1 -0
- package/dist/cli/templates/model/prisma.d.ts +12 -0
- package/dist/cli/templates/model/prisma.d.ts.map +1 -0
- package/dist/cli/templates/module/module.d.ts +16 -0
- package/dist/cli/templates/module/module.d.ts.map +1 -0
- package/dist/cli/templates/project/drizzle.config.d.ts +12 -0
- package/dist/cli/templates/project/drizzle.config.d.ts.map +1 -0
- package/dist/cli/templates/project/nx.config.d.ts +7 -0
- package/dist/cli/templates/project/nx.config.d.ts.map +1 -0
- package/dist/cli/templates/repository/repository.d.ts +13 -0
- package/dist/cli/templates/repository/repository.d.ts.map +1 -0
- package/dist/cli/templates/service/service.d.ts +12 -0
- package/dist/cli/templates/service/service.d.ts.map +1 -0
- package/dist/cli/templates/validator/validator.d.ts +8 -0
- package/dist/cli/templates/validator/validator.d.ts.map +1 -0
- package/dist/config/config.module.d.ts +39 -0
- package/dist/config/config.module.d.ts.map +1 -0
- package/dist/config/config.service.d.ts +47 -0
- package/dist/config/config.service.d.ts.map +1 -0
- package/dist/config/index.d.ts +39 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +436 -0
- package/dist/config/index.js.map +21 -0
- package/dist/config/types.d.ts +78 -0
- package/dist/config/types.d.ts.map +1 -0
- package/dist/core/application.d.ts +77 -0
- package/dist/core/application.d.ts.map +1 -0
- package/dist/core/constants.d.ts +48 -0
- package/dist/core/constants.d.ts.map +1 -0
- package/dist/core/decorators/controller.d.ts +21 -0
- package/dist/core/decorators/controller.d.ts.map +1 -0
- package/dist/core/decorators/http-methods.d.ts +33 -0
- package/dist/core/decorators/http-methods.d.ts.map +1 -0
- package/dist/core/decorators/index.d.ts +12 -0
- package/dist/core/decorators/index.d.ts.map +1 -0
- package/dist/core/decorators/injectable.d.ts +42 -0
- package/dist/core/decorators/injectable.d.ts.map +1 -0
- package/dist/core/decorators/metadata.d.ts +7 -0
- package/dist/core/decorators/metadata.d.ts.map +1 -0
- package/dist/core/decorators/module.d.ts +23 -0
- package/dist/core/decorators/module.d.ts.map +1 -0
- package/dist/core/decorators/params.d.ts +33 -0
- package/dist/core/decorators/params.d.ts.map +1 -0
- package/dist/core/decorators/repository.d.ts +24 -0
- package/dist/core/decorators/repository.d.ts.map +1 -0
- package/dist/core/decorators/validate.d.ts +21 -0
- package/dist/core/decorators/validate.d.ts.map +1 -0
- package/dist/core/di/container.d.ts +70 -0
- package/dist/core/di/container.d.ts.map +1 -0
- package/dist/core/di/index.d.ts +9 -0
- package/dist/core/di/index.d.ts.map +1 -0
- package/dist/core/di/request-middleware.d.ts +36 -0
- package/dist/core/di/request-middleware.d.ts.map +1 -0
- package/dist/core/di/request-scope.d.ts +45 -0
- package/dist/core/di/request-scope.d.ts.map +1 -0
- package/dist/core/di/scanner.d.ts +36 -0
- package/dist/core/di/scanner.d.ts.map +1 -0
- package/dist/core/di/tokens.d.ts +98 -0
- package/dist/core/di/tokens.d.ts.map +1 -0
- package/dist/core/http/context.d.ts +30 -0
- package/dist/core/http/context.d.ts.map +1 -0
- package/dist/core/http/index.d.ts +8 -0
- package/dist/core/http/index.d.ts.map +1 -0
- package/dist/core/http/middleware.d.ts +31 -0
- package/dist/core/http/middleware.d.ts.map +1 -0
- package/dist/core/http/router.d.ts +46 -0
- package/dist/core/http/router.d.ts.map +1 -0
- package/dist/core/http/server.d.ts +58 -0
- package/dist/core/http/server.d.ts.map +1 -0
- package/dist/core/index.d.ts +20 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/orm/drizzle-adapter.d.ts +73 -0
- package/dist/core/orm/drizzle-adapter.d.ts.map +1 -0
- package/dist/core/orm/index.d.ts +5 -0
- package/dist/core/orm/index.d.ts.map +1 -0
- package/dist/core/runtime/bun.d.ts +13 -0
- package/dist/core/runtime/bun.d.ts.map +1 -0
- package/dist/core/runtime/cloudflare.d.ts +18 -0
- package/dist/core/runtime/cloudflare.d.ts.map +1 -0
- package/dist/core/runtime/index.d.ts +11 -0
- package/dist/core/runtime/index.d.ts.map +1 -0
- package/dist/core/runtime/node.d.ts +10 -0
- package/dist/core/runtime/node.d.ts.map +1 -0
- package/dist/core/validation/index.d.ts +5 -0
- package/dist/core/validation/index.d.ts.map +1 -0
- package/dist/core/validation/validator.d.ts +46 -0
- package/dist/core/validation/validator.d.ts.map +1 -0
- package/dist/crypto/encryption.d.ts +71 -0
- package/dist/crypto/encryption.d.ts.map +1 -0
- package/dist/crypto/hash.d.ts +52 -0
- package/dist/crypto/hash.d.ts.map +1 -0
- package/dist/crypto/index.d.ts +49 -0
- package/dist/crypto/index.d.ts.map +1 -0
- package/dist/crypto/index.js +533 -0
- package/dist/crypto/index.js.map +14 -0
- package/dist/crypto/module.d.ts +28 -0
- package/dist/crypto/module.d.ts.map +1 -0
- package/dist/crypto/types.d.ts +81 -0
- package/dist/crypto/types.d.ts.map +1 -0
- package/dist/drive/drive.module.d.ts +20 -0
- package/dist/drive/drive.module.d.ts.map +1 -0
- package/dist/drive/drive.service.d.ts +21 -0
- package/dist/drive/drive.service.d.ts.map +1 -0
- package/dist/drive/drivers/index.d.ts +9 -0
- package/dist/drive/drivers/index.d.ts.map +1 -0
- package/dist/drive/drivers/local.d.ts +24 -0
- package/dist/drive/drivers/local.d.ts.map +1 -0
- package/dist/drive/drivers/memory.d.ts +19 -0
- package/dist/drive/drivers/memory.d.ts.map +1 -0
- package/dist/drive/drivers/s3.d.ts +44 -0
- package/dist/drive/drivers/s3.d.ts.map +1 -0
- package/dist/drive/index.d.ts +9 -0
- package/dist/drive/index.d.ts.map +1 -0
- package/dist/drive/index.js +714 -0
- package/dist/drive/index.js.map +25 -0
- package/dist/drive/types.d.ts +97 -0
- package/dist/drive/types.d.ts.map +1 -0
- package/dist/drizzle/decorators/columns.d.ts +16 -0
- package/dist/drizzle/decorators/columns.d.ts.map +1 -0
- package/dist/drizzle/decorators/index.d.ts +6 -0
- package/dist/drizzle/decorators/index.d.ts.map +1 -0
- package/dist/drizzle/drivers/base.d.ts +32 -0
- package/dist/drizzle/drivers/base.d.ts.map +1 -0
- package/dist/drizzle/drivers/bun-sqlite.d.ts +6 -0
- package/dist/drizzle/drivers/bun-sqlite.d.ts.map +1 -0
- package/dist/drizzle/drivers/d1.d.ts +7 -0
- package/dist/drizzle/drivers/d1.d.ts.map +1 -0
- package/dist/drizzle/drivers/index.d.ts +14 -0
- package/dist/drizzle/drivers/index.d.ts.map +1 -0
- package/dist/drizzle/drivers/mysql.d.ts +6 -0
- package/dist/drizzle/drivers/mysql.d.ts.map +1 -0
- package/dist/drizzle/drivers/postgres.d.ts +12 -0
- package/dist/drizzle/drivers/postgres.d.ts.map +1 -0
- package/dist/drizzle/drivers/sqlite.d.ts +8 -0
- package/dist/drizzle/drivers/sqlite.d.ts.map +1 -0
- package/dist/drizzle/drizzle.module.d.ts +29 -0
- package/dist/drizzle/drizzle.module.d.ts.map +1 -0
- package/dist/drizzle/drizzle.service.d.ts +52 -0
- package/dist/drizzle/drizzle.service.d.ts.map +1 -0
- package/dist/drizzle/index.d.ts +13 -0
- package/dist/drizzle/index.d.ts.map +1 -0
- package/dist/drizzle/index.js +979 -0
- package/dist/drizzle/index.js.map +32 -0
- package/dist/drizzle/model.d.ts +26 -0
- package/dist/drizzle/model.d.ts.map +1 -0
- package/dist/drizzle/raw-query.d.ts +41 -0
- package/dist/drizzle/raw-query.d.ts.map +1 -0
- package/dist/drizzle/repository/index.d.ts +6 -0
- package/dist/drizzle/repository/index.d.ts.map +1 -0
- package/dist/drizzle/repository/repository.d.ts +60 -0
- package/dist/drizzle/repository/repository.d.ts.map +1 -0
- package/dist/drizzle/types.d.ts +160 -0
- package/dist/drizzle/types.d.ts.map +1 -0
- package/dist/events/decorators/on-event.d.ts +49 -0
- package/dist/events/decorators/on-event.d.ts.map +1 -0
- package/dist/events/emitter.d.ts +52 -0
- package/dist/events/emitter.d.ts.map +1 -0
- package/dist/events/event.service.d.ts +27 -0
- package/dist/events/event.service.d.ts.map +1 -0
- package/dist/events/events.module.d.ts +35 -0
- package/dist/events/events.module.d.ts.map +1 -0
- package/dist/events/index.d.ts +43 -0
- package/dist/events/index.d.ts.map +1 -0
- package/dist/events/index.js +646 -0
- package/dist/events/index.js.map +23 -0
- package/dist/events/types.d.ts +120 -0
- package/dist/events/types.d.ts.map +1 -0
- package/dist/grpc/decorators.d.ts +34 -0
- package/dist/grpc/decorators.d.ts.map +1 -0
- package/dist/grpc/index.d.ts +70 -0
- package/dist/grpc/index.d.ts.map +1 -0
- package/dist/grpc/index.js +528 -0
- package/dist/grpc/index.js.map +22 -0
- package/dist/grpc/module.d.ts +32 -0
- package/dist/grpc/module.d.ts.map +1 -0
- package/dist/grpc/service.d.ts +60 -0
- package/dist/grpc/service.d.ts.map +1 -0
- package/dist/grpc/types.d.ts +79 -0
- package/dist/grpc/types.d.ts.map +1 -0
- package/dist/health/health.controller.d.ts +61 -0
- package/dist/health/health.controller.d.ts.map +1 -0
- package/dist/health/health.module.d.ts +29 -0
- package/dist/health/health.module.d.ts.map +1 -0
- package/dist/health/health.service.d.ts +34 -0
- package/dist/health/health.service.d.ts.map +1 -0
- package/dist/health/index.d.ts +38 -0
- package/dist/health/index.d.ts.map +1 -0
- package/dist/health/index.js +599 -0
- package/dist/health/index.js.map +25 -0
- package/dist/health/indicators/drizzle.d.ts +18 -0
- package/dist/health/indicators/drizzle.d.ts.map +1 -0
- package/dist/health/indicators/index.d.ts +59 -0
- package/dist/health/indicators/index.d.ts.map +1 -0
- package/dist/health/types.d.ts +105 -0
- package/dist/health/types.d.ts.map +1 -0
- package/dist/i18n/decorators.d.ts +14 -0
- package/dist/i18n/decorators.d.ts.map +1 -0
- package/dist/i18n/index.d.ts +48 -0
- package/dist/i18n/index.d.ts.map +1 -0
- package/dist/i18n/index.js +589 -0
- package/dist/i18n/index.js.map +17 -0
- package/dist/i18n/middleware.d.ts +26 -0
- package/dist/i18n/middleware.d.ts.map +1 -0
- package/dist/i18n/module.d.ts +39 -0
- package/dist/i18n/module.d.ts.map +1 -0
- package/dist/i18n/service.d.ts +130 -0
- package/dist/i18n/service.d.ts.map +1 -0
- package/dist/i18n/types.d.ts +65 -0
- package/dist/i18n/types.d.ts.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +2056 -0
- package/dist/index.js.map +53 -0
- package/dist/limiter/backends/drizzle.d.ts +40 -0
- package/dist/limiter/backends/drizzle.d.ts.map +1 -0
- package/dist/limiter/backends/index.d.ts +6 -0
- package/dist/limiter/backends/index.d.ts.map +1 -0
- package/dist/limiter/backends/memory.d.ts +28 -0
- package/dist/limiter/backends/memory.d.ts.map +1 -0
- package/dist/limiter/index.d.ts +9 -0
- package/dist/limiter/index.d.ts.map +1 -0
- package/dist/limiter/index.js +640 -0
- package/dist/limiter/index.js.map +25 -0
- package/dist/limiter/limiter.middleware.d.ts +11 -0
- package/dist/limiter/limiter.middleware.d.ts.map +1 -0
- package/dist/limiter/limiter.module.d.ts +23 -0
- package/dist/limiter/limiter.module.d.ts.map +1 -0
- package/dist/limiter/limiter.service.d.ts +18 -0
- package/dist/limiter/limiter.service.d.ts.map +1 -0
- package/dist/limiter/types.d.ts +99 -0
- package/dist/limiter/types.d.ts.map +1 -0
- package/dist/logger/index.d.ts +36 -0
- package/dist/logger/index.d.ts.map +1 -0
- package/dist/logger/index.js +538 -0
- package/dist/logger/index.js.map +22 -0
- package/dist/logger/logger.module.d.ts +35 -0
- package/dist/logger/logger.module.d.ts.map +1 -0
- package/dist/logger/logger.service.d.ts +55 -0
- package/dist/logger/logger.service.d.ts.map +1 -0
- package/dist/logger/transports/index.d.ts +35 -0
- package/dist/logger/transports/index.d.ts.map +1 -0
- package/dist/logger/types.d.ts +58 -0
- package/dist/logger/types.d.ts.map +1 -0
- package/dist/mail/index.d.ts +9 -0
- package/dist/mail/index.d.ts.map +1 -0
- package/dist/mail/index.js +479 -0
- package/dist/mail/index.js.map +25 -0
- package/dist/mail/mail.module.d.ts +21 -0
- package/dist/mail/mail.module.d.ts.map +1 -0
- package/dist/mail/mail.service.d.ts +18 -0
- package/dist/mail/mail.service.d.ts.map +1 -0
- package/dist/mail/transports/file.d.ts +19 -0
- package/dist/mail/transports/file.d.ts.map +1 -0
- package/dist/mail/transports/index.d.ts +9 -0
- package/dist/mail/transports/index.d.ts.map +1 -0
- package/dist/mail/transports/null.d.ts +11 -0
- package/dist/mail/transports/null.d.ts.map +1 -0
- package/dist/mail/transports/smtp.d.ts +40 -0
- package/dist/mail/transports/smtp.d.ts.map +1 -0
- package/dist/mail/types.d.ts +73 -0
- package/dist/mail/types.d.ts.map +1 -0
- package/dist/metrics/controller.d.ts +27 -0
- package/dist/metrics/controller.d.ts.map +1 -0
- package/dist/metrics/counter.d.ts +36 -0
- package/dist/metrics/counter.d.ts.map +1 -0
- package/dist/metrics/decorators/counted.d.ts +26 -0
- package/dist/metrics/decorators/counted.d.ts.map +1 -0
- package/dist/metrics/decorators/index.d.ts +3 -0
- package/dist/metrics/decorators/index.d.ts.map +1 -0
- package/dist/metrics/decorators/timed.d.ts +25 -0
- package/dist/metrics/decorators/timed.d.ts.map +1 -0
- package/dist/metrics/gauge.d.ts +38 -0
- package/dist/metrics/gauge.d.ts.map +1 -0
- package/dist/metrics/histogram.d.ts +52 -0
- package/dist/metrics/histogram.d.ts.map +1 -0
- package/dist/metrics/index.d.ts +35 -0
- package/dist/metrics/index.d.ts.map +1 -0
- package/dist/metrics/index.js +1033 -0
- package/dist/metrics/index.js.map +21 -0
- package/dist/metrics/module.d.ts +33 -0
- package/dist/metrics/module.d.ts.map +1 -0
- package/dist/metrics/registry.d.ts +52 -0
- package/dist/metrics/registry.d.ts.map +1 -0
- package/dist/metrics/service.d.ts +42 -0
- package/dist/metrics/service.d.ts.map +1 -0
- package/dist/metrics/summary.d.ts +50 -0
- package/dist/metrics/summary.d.ts.map +1 -0
- package/dist/metrics/types.d.ts +115 -0
- package/dist/metrics/types.d.ts.map +1 -0
- package/dist/openapi/decorators/body.d.ts +9 -0
- package/dist/openapi/decorators/body.d.ts.map +1 -0
- package/dist/openapi/decorators/index.d.ts +11 -0
- package/dist/openapi/decorators/index.d.ts.map +1 -0
- package/dist/openapi/decorators/operation.d.ts +9 -0
- package/dist/openapi/decorators/operation.d.ts.map +1 -0
- package/dist/openapi/decorators/param.d.ts +17 -0
- package/dist/openapi/decorators/param.d.ts.map +1 -0
- package/dist/openapi/decorators/property.d.ts +24 -0
- package/dist/openapi/decorators/property.d.ts.map +1 -0
- package/dist/openapi/decorators/response.d.ts +10 -0
- package/dist/openapi/decorators/response.d.ts.map +1 -0
- package/dist/openapi/decorators/security.d.ts +9 -0
- package/dist/openapi/decorators/security.d.ts.map +1 -0
- package/dist/openapi/decorators/tags.d.ts +2 -0
- package/dist/openapi/decorators/tags.d.ts.map +1 -0
- package/dist/openapi/index.d.ts +10 -0
- package/dist/openapi/index.d.ts.map +1 -0
- package/dist/openapi/index.js +974 -0
- package/dist/openapi/index.js.map +31 -0
- package/dist/openapi/openapi.module.d.ts +46 -0
- package/dist/openapi/openapi.module.d.ts.map +1 -0
- package/dist/openapi/openapi.service.d.ts +55 -0
- package/dist/openapi/openapi.service.d.ts.map +1 -0
- package/dist/openapi/scalar.d.ts +16 -0
- package/dist/openapi/scalar.d.ts.map +1 -0
- package/dist/openapi/types.d.ts +266 -0
- package/dist/openapi/types.d.ts.map +1 -0
- package/dist/openapi/zod-to-json-schema.d.ts +34 -0
- package/dist/openapi/zod-to-json-schema.d.ts.map +1 -0
- package/dist/package.json +59 -0
- package/dist/queue/backends/bullmq.d.ts +41 -0
- package/dist/queue/backends/bullmq.d.ts.map +1 -0
- package/dist/queue/backends/cloudflare.d.ts +84 -0
- package/dist/queue/backends/cloudflare.d.ts.map +1 -0
- package/dist/queue/backends/index.d.ts +7 -0
- package/dist/queue/backends/index.d.ts.map +1 -0
- package/dist/queue/backends/memory.d.ts +24 -0
- package/dist/queue/backends/memory.d.ts.map +1 -0
- package/dist/queue/decorators/on-queue-ready.d.ts +43 -0
- package/dist/queue/decorators/on-queue-ready.d.ts.map +1 -0
- package/dist/queue/index.d.ts +57 -0
- package/dist/queue/index.d.ts.map +1 -0
- package/dist/queue/index.js +961 -0
- package/dist/queue/index.js.map +25 -0
- package/dist/queue/queue.module.d.ts +46 -0
- package/dist/queue/queue.module.d.ts.map +1 -0
- package/dist/queue/queue.service.d.ts +61 -0
- package/dist/queue/queue.service.d.ts.map +1 -0
- package/dist/queue/types.d.ts +204 -0
- package/dist/queue/types.d.ts.map +1 -0
- package/dist/redis/adapters/bun.d.ts +27 -0
- package/dist/redis/adapters/bun.d.ts.map +1 -0
- package/dist/redis/adapters/cloudflare.d.ts +51 -0
- package/dist/redis/adapters/cloudflare.d.ts.map +1 -0
- package/dist/redis/adapters/index.d.ts +29 -0
- package/dist/redis/adapters/index.d.ts.map +1 -0
- package/dist/redis/adapters/memory.d.ts +28 -0
- package/dist/redis/adapters/memory.d.ts.map +1 -0
- package/dist/redis/adapters/node.d.ts +36 -0
- package/dist/redis/adapters/node.d.ts.map +1 -0
- package/dist/redis/index.d.ts +33 -0
- package/dist/redis/index.d.ts.map +1 -0
- package/dist/redis/index.js +667 -0
- package/dist/redis/index.js.map +25 -0
- package/dist/redis/module.d.ts +32 -0
- package/dist/redis/module.d.ts.map +1 -0
- package/dist/redis/types.d.ts +146 -0
- package/dist/redis/types.d.ts.map +1 -0
- package/dist/schedule/backends/cloudflare.d.ts +55 -0
- package/dist/schedule/backends/cloudflare.d.ts.map +1 -0
- package/dist/schedule/backends/index.d.ts +3 -0
- package/dist/schedule/backends/index.d.ts.map +1 -0
- package/dist/schedule/backends/memory.d.ts +39 -0
- package/dist/schedule/backends/memory.d.ts.map +1 -0
- package/dist/schedule/cron-parser.d.ts +48 -0
- package/dist/schedule/cron-parser.d.ts.map +1 -0
- package/dist/schedule/decorators/cron.d.ts +71 -0
- package/dist/schedule/decorators/cron.d.ts.map +1 -0
- package/dist/schedule/index.d.ts +51 -0
- package/dist/schedule/index.d.ts.map +1 -0
- package/dist/schedule/index.js +1108 -0
- package/dist/schedule/index.js.map +25 -0
- package/dist/schedule/schedule.module.d.ts +44 -0
- package/dist/schedule/schedule.module.d.ts.map +1 -0
- package/dist/schedule/schedule.service.d.ts +51 -0
- package/dist/schedule/schedule.service.d.ts.map +1 -0
- package/dist/schedule/types.d.ts +150 -0
- package/dist/schedule/types.d.ts.map +1 -0
- package/dist/session/backends/cookie.d.ts +56 -0
- package/dist/session/backends/cookie.d.ts.map +1 -0
- package/dist/session/backends/drizzle.d.ts +65 -0
- package/dist/session/backends/drizzle.d.ts.map +1 -0
- package/dist/session/backends/index.d.ts +6 -0
- package/dist/session/backends/index.d.ts.map +1 -0
- package/dist/session/backends/memory.d.ts +32 -0
- package/dist/session/backends/memory.d.ts.map +1 -0
- package/dist/session/backends/redis.d.ts +53 -0
- package/dist/session/backends/redis.d.ts.map +1 -0
- package/dist/session/decorators/current-session.d.ts +56 -0
- package/dist/session/decorators/current-session.d.ts.map +1 -0
- package/dist/session/index.d.ts +42 -0
- package/dist/session/index.d.ts.map +1 -0
- package/dist/session/index.js +1498 -0
- package/dist/session/index.js.map +28 -0
- package/dist/session/session-middleware.d.ts +29 -0
- package/dist/session/session-middleware.d.ts.map +1 -0
- package/dist/session/session.module.d.ts +35 -0
- package/dist/session/session.module.d.ts.map +1 -0
- package/dist/session/session.service.d.ts +49 -0
- package/dist/session/session.service.d.ts.map +1 -0
- package/dist/session/types.d.ts +201 -0
- package/dist/session/types.d.ts.map +1 -0
- package/dist/shield/guards/csrf.d.ts +33 -0
- package/dist/shield/guards/csrf.d.ts.map +1 -0
- package/dist/shield/guards/headers.d.ts +22 -0
- package/dist/shield/guards/headers.d.ts.map +1 -0
- package/dist/shield/guards/index.d.ts +6 -0
- package/dist/shield/guards/index.d.ts.map +1 -0
- package/dist/shield/index.d.ts +8 -0
- package/dist/shield/index.d.ts.map +1 -0
- package/dist/shield/index.js +728 -0
- package/dist/shield/index.js.map +25 -0
- package/dist/shield/shield.module.d.ts +25 -0
- package/dist/shield/shield.module.d.ts.map +1 -0
- package/dist/shield/shield.service.d.ts +21 -0
- package/dist/shield/shield.service.d.ts.map +1 -0
- package/dist/shield/types.d.ts +95 -0
- package/dist/shield/types.d.ts.map +1 -0
- package/dist/sse/index.d.ts +7 -0
- package/dist/sse/index.d.ts.map +1 -0
- package/dist/sse/index.js +214 -0
- package/dist/sse/index.js.map +13 -0
- package/dist/sse/sse-stream.d.ts +46 -0
- package/dist/sse/sse-stream.d.ts.map +1 -0
- package/dist/sse/sse.d.ts +24 -0
- package/dist/sse/sse.d.ts.map +1 -0
- package/dist/sse/types.d.ts +84 -0
- package/dist/sse/types.d.ts.map +1 -0
- package/dist/static/index.d.ts +41 -0
- package/dist/static/index.d.ts.map +1 -0
- package/dist/static/index.js +313 -0
- package/dist/static/index.js.map +13 -0
- package/dist/static/static.module.d.ts +41 -0
- package/dist/static/static.module.d.ts.map +1 -0
- package/dist/static/static.service.d.ts +38 -0
- package/dist/static/static.service.d.ts.map +1 -0
- package/dist/tracing/decorators/index.d.ts +2 -0
- package/dist/tracing/decorators/index.d.ts.map +1 -0
- package/dist/tracing/decorators/trace.d.ts +37 -0
- package/dist/tracing/decorators/trace.d.ts.map +1 -0
- package/dist/tracing/hono-instrumentation.d.ts +21 -0
- package/dist/tracing/hono-instrumentation.d.ts.map +1 -0
- package/dist/tracing/index.d.ts +29 -0
- package/dist/tracing/index.d.ts.map +1 -0
- package/dist/tracing/index.js +782 -0
- package/dist/tracing/index.js.map +24 -0
- package/dist/tracing/module.d.ts +45 -0
- package/dist/tracing/module.d.ts.map +1 -0
- package/dist/tracing/propagation.d.ts +53 -0
- package/dist/tracing/propagation.d.ts.map +1 -0
- package/dist/tracing/service.d.ts +95 -0
- package/dist/tracing/service.d.ts.map +1 -0
- package/dist/tracing/types.d.ts +90 -0
- package/dist/tracing/types.d.ts.map +1 -0
- package/dist/upload/decorators/index.d.ts +6 -0
- package/dist/upload/decorators/index.d.ts.map +1 -0
- package/dist/upload/decorators/upload.d.ts +16 -0
- package/dist/upload/decorators/upload.d.ts.map +1 -0
- package/dist/upload/decorators/uploaded-file.d.ts +10 -0
- package/dist/upload/decorators/uploaded-file.d.ts.map +1 -0
- package/dist/upload/index.d.ts +9 -0
- package/dist/upload/index.d.ts.map +1 -0
- package/dist/upload/index.js +553 -0
- package/dist/upload/index.js.map +25 -0
- package/dist/upload/types.d.ts +103 -0
- package/dist/upload/types.d.ts.map +1 -0
- package/dist/upload/upload.middleware.d.ts +15 -0
- package/dist/upload/upload.middleware.d.ts.map +1 -0
- package/dist/upload/upload.module.d.ts +33 -0
- package/dist/upload/upload.module.d.ts.map +1 -0
- package/dist/upload/upload.service.d.ts +29 -0
- package/dist/upload/upload.service.d.ts.map +1 -0
- package/dist/view/edge.d.ts +23 -0
- package/dist/view/edge.d.ts.map +1 -0
- package/dist/view/eta.d.ts +30 -0
- package/dist/view/eta.d.ts.map +1 -0
- package/dist/view/index.d.ts +34 -0
- package/dist/view/index.d.ts.map +1 -0
- package/dist/view/index.js +240 -0
- package/dist/view/index.js.map +14 -0
- package/dist/view/inertia/default-ssr.d.ts +15 -0
- package/dist/view/inertia/default-ssr.d.ts.map +1 -0
- package/dist/view/inertia/form-helper.d.ts +102 -0
- package/dist/view/inertia/form-helper.d.ts.map +1 -0
- package/dist/view/inertia/form-middleware.d.ts +53 -0
- package/dist/view/inertia/form-middleware.d.ts.map +1 -0
- package/dist/view/inertia/helpers.d.ts +149 -0
- package/dist/view/inertia/helpers.d.ts.map +1 -0
- package/dist/view/inertia/index.d.ts +18 -0
- package/dist/view/inertia/index.d.ts.map +1 -0
- package/dist/view/inertia/inertia-adapter.d.ts +93 -0
- package/dist/view/inertia/inertia-adapter.d.ts.map +1 -0
- package/dist/view/inertia/inertia-response.d.ts +51 -0
- package/dist/view/inertia/inertia-response.d.ts.map +1 -0
- package/dist/view/inertia/ssr/index.d.ts +13 -0
- package/dist/view/inertia/ssr/index.d.ts.map +1 -0
- package/dist/view/inertia/ssr/react-adapter.d.ts +33 -0
- package/dist/view/inertia/ssr/react-adapter.d.ts.map +1 -0
- package/dist/view/inertia/ssr/registry.d.ts +42 -0
- package/dist/view/inertia/ssr/registry.d.ts.map +1 -0
- package/dist/view/inertia/ssr/solid-adapter.d.ts +31 -0
- package/dist/view/inertia/ssr/solid-adapter.d.ts.map +1 -0
- package/dist/view/inertia/ssr/svelte-adapter.d.ts +31 -0
- package/dist/view/inertia/ssr/svelte-adapter.d.ts.map +1 -0
- package/dist/view/inertia/ssr/vue-adapter.d.ts +26 -0
- package/dist/view/inertia/ssr/vue-adapter.d.ts.map +1 -0
- package/dist/view/inertia/types.d.ts +131 -0
- package/dist/view/inertia/types.d.ts.map +1 -0
- package/dist/view/rendu.d.ts +11 -0
- package/dist/view/rendu.d.ts.map +1 -0
- package/dist/view/types.d.ts +52 -0
- package/dist/view/types.d.ts.map +1 -0
- package/dist/view/view-engine.d.ts +28 -0
- package/dist/view/view-engine.d.ts.map +1 -0
- package/dist/ws/client.d.ts +42 -0
- package/dist/ws/client.d.ts.map +1 -0
- package/dist/ws/decorators.d.ts +44 -0
- package/dist/ws/decorators.d.ts.map +1 -0
- package/dist/ws/index.d.ts +57 -0
- package/dist/ws/index.d.ts.map +1 -0
- package/dist/ws/index.js +796 -0
- package/dist/ws/index.js.map +26 -0
- package/dist/ws/module.d.ts +48 -0
- package/dist/ws/module.d.ts.map +1 -0
- package/dist/ws/runtime/bun.d.ts +41 -0
- package/dist/ws/runtime/bun.d.ts.map +1 -0
- package/dist/ws/runtime/index.d.ts +14 -0
- package/dist/ws/runtime/index.d.ts.map +1 -0
- package/dist/ws/runtime/node.d.ts +46 -0
- package/dist/ws/runtime/node.d.ts.map +1 -0
- package/dist/ws/runtime/types.d.ts +18 -0
- package/dist/ws/runtime/types.d.ts.map +1 -0
- package/dist/ws/service.d.ts +65 -0
- package/dist/ws/service.d.ts.map +1 -0
- package/dist/ws/types.d.ts +77 -0
- package/dist/ws/types.d.ts.map +1 -0
- package/package.json +262 -0
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/core/constants.ts", "../src/core/decorators/controller.ts", "../src/core/decorators/http-methods.ts", "../src/core/decorators/params.ts", "../src/core/decorators/validate.ts", "../src/drive/types.ts", "../src/drive/drivers/memory.ts", "../src/drive/drivers/local.ts", "../src/drive/drivers/s3.ts", "../src/core/decorators/module.ts", "../src/core/decorators/index.ts", "../src/core/decorators/injectable.ts", "../src/core/decorators/repository.ts", "../src/core/decorators/metadata.ts", "../src/drive/drive.service.ts", "../src/drive/drive.module.ts"],
|
|
4
|
+
"sourcesContent": [
|
|
5
|
+
"/**\n * Metadata keys used by reflect-metadata for storing decorator data.\n *\n * These constants are the contract between decorators and the framework\n * core (DI container, router, validator).\n */\nexport const METADATA_KEY = {\n\t/** Marks a class as a Nest-style controller, stores route prefix. */\n\tCONTROLLER: \"nexus:controller\",\n\n\t/** Marks a class as an injectable provider. */\n\tINJECTABLE: \"nexus:injectable\",\n\n\t/** Marks a class as a repository. */\n\tREPOSITORY: \"nexus:repository\",\n\n\t/** Marks a class as a module. Stores module options. */\n\tMODULE: \"nexus:module\",\n\n\t/** HTTP method routes registered on a controller (Get/Post/...). */\n\tROUTES: \"nexus:routes\",\n\n\t/** Method parameter type metadata (body/query/param/headers/ctx). */\n\tPARAMS: \"nexus:params\",\n\n\t/** Validation schema per method (Zod schema or class). */\n\tVALIDATE: \"nexus:validate\",\n\n\t/** Class-level design:paramtypes (built-in). */\n\tPARAMTYPES: \"design:paramtypes\",\n\n\t/** Class-level design:type (built-in). */\n\tTYPE: \"design:type\",\n\n\t/** Class-level design:returntype (built-in). */\n\tRETURNTYPE: \"design:returntype\",\n\n\t/** Provider token to inject for a parameter (for custom tokens). */\n\tINJECT: \"nexus:inject\",\n} as const;\n\nexport type MetadataKey = (typeof METADATA_KEY)[keyof typeof METADATA_KEY];\n\n/** Available parameter decorator locations. */\nexport const PARAM_TYPES = {\n\tREQUEST: 0,\n\tRESPONSE: 1,\n\tNEXT: 2,\n\tBODY: 3,\n\tQUERY: 4,\n\tPARAM: 5,\n\tHEADERS: 6,\n\tCTX: 7,\n\tUSER: 8,\n} as const;\n\nexport type ParamType = (typeof PARAM_TYPES)[keyof typeof PARAM_TYPES];\n\n/** HTTP methods supported by the router. */\nexport const HTTP_METHODS = [\n\t\"GET\",\n\t\"POST\",\n\t\"PUT\",\n\t\"DELETE\",\n\t\"PATCH\",\n\t\"OPTIONS\",\n\t\"HEAD\",\n] as const;\nexport type HttpMethod = (typeof HTTP_METHODS)[number];\n",
|
|
6
|
+
"/**\n * @Controller decorator.\n *\n * Marks a class as a controller and registers a route prefix.\n * Routes inside the controller class are decorated with @Get/@Post/etc.\n *\n * @example\n * ```ts\n * @Controller('/users')\n * class UserController {\n * @Get('/')\n * list() { ... }\n * }\n * ```\n */\nimport \"reflect-metadata\";\nimport { METADATA_KEY } from \"../constants.js\";\nimport type { ControllerMetadata } from \"../di/tokens.js\";\n\nexport function Controller(prefix: string = \"/\"): ClassDecorator {\n\treturn (target: object) => {\n\t\tconst normalized = normalizePrefix(prefix);\n\t\tconst meta: ControllerMetadata = { prefix: normalized };\n\t\tReflect.defineMetadata(METADATA_KEY.CONTROLLER, meta, target);\n\t};\n}\n\nexport function getControllerMetadata(target: any): ControllerMetadata {\n\treturn (\n\t\tReflect.getMetadata(METADATA_KEY.CONTROLLER, target) ?? { prefix: \"/\" }\n\t);\n}\n\nexport function isController(target: any): boolean {\n\treturn Reflect.hasMetadata(METADATA_KEY.CONTROLLER, target);\n}\n\n/**\n * Normalize a prefix so we can safely concatenate it with handler paths.\n * - Empty string becomes '/'.\n * - Trailing slashes are trimmed (we re-add them on the join).\n * - No leading slash is added; the router always joins with `/`.\n */\nfunction normalizePrefix(prefix: string): string {\n\tif (!prefix) return \"\";\n\tif (prefix !== \"/\" && prefix.endsWith(\"/\")) {\n\t\treturn prefix.slice(0, -1);\n\t}\n\treturn prefix;\n}\n",
|
|
7
|
+
"/**\n * HTTP method decorators.\n *\n * `@Get`, `@Post`, `@Put`, `@Delete`, `@Patch`, `@Options`, `@Head` mark a\n * controller method as a route handler. The path argument is appended to\n * the controller's prefix.\n *\n * @example\n * ```ts\n * @Controller('/users')\n * class UserController {\n * @Get('/')\n * list() {}\n *\n * @Post('/')\n * create(@Body() body: CreateUserDto) {}\n * }\n * ```\n */\nimport \"reflect-metadata\";\nimport { HTTP_METHODS, METADATA_KEY, type HttpMethod } from \"../constants.js\";\nimport type { RouteMetadata } from \"../di/tokens.js\";\n\nfunction defineRoute(method: HttpMethod, path: string): MethodDecorator {\n\treturn (\n\t\ttarget: object,\n\t\tpropertyKey: string | symbol,\n\t\tdescriptor: PropertyDescriptor,\n\t) => {\n\t\tconst routes: RouteMetadata[] =\n\t\t\tReflect.getMetadata(METADATA_KEY.ROUTES, target.constructor) ?? [];\n\n\t\troutes.push({\n\t\t\tmethod,\n\t\t\tpath: normalizePath(path),\n\t\t\tpropertyKey,\n\t\t\thandler: descriptor.value,\n\t\t});\n\n\t\tReflect.defineMetadata(METADATA_KEY.ROUTES, routes, target.constructor);\n\t};\n}\n\nfunction normalizePath(path: string): string {\n\tif (!path || path === \"/\") return \"/\";\n\treturn path.startsWith(\"/\") ? path : `/${path}`;\n}\n\nexport const Get = (path: string = \"/\") => defineRoute(\"GET\", path);\nexport const Post = (path: string = \"/\") => defineRoute(\"POST\", path);\nexport const Put = (path: string = \"/\") => defineRoute(\"PUT\", path);\nexport const Delete = (path: string = \"/\") => defineRoute(\"DELETE\", path);\nexport const Patch = (path: string = \"/\") => defineRoute(\"PATCH\", path);\nexport const Options = (path: string = \"/\") => defineRoute(\"OPTIONS\", path);\nexport const Head = (path: string = \"/\") => defineRoute(\"HEAD\", path);\n\nexport function getRoutes(target: any): RouteMetadata[] {\n\treturn Reflect.getMetadata(METADATA_KEY.ROUTES, target) ?? [];\n}\n\nexport { HTTP_METHODS };\nexport type { RouteMetadata };\n",
|
|
8
|
+
"/**\n * Parameter decorators.\n *\n * These mark a controller method argument as a source of request data:\n * - `@Req()` → Hono context\n * - `@Res()` → Response helper\n * - `@Next()` → next() callback (for middleware-style handlers)\n * - `@Body()` → request body (parsed)\n * - `@Query('key')` → a single query param, or full query object\n * - `@Param('key')` → a single path param, or full params object\n * - `@Headers('k')` → a single header, or full headers object\n * - `@Ctx()` → Hono context (alias for @Req)\n * - `@User()` → authenticated user (resolved via auth provider)\n *\n * The metadata is read by the router at mount time to build the\n * handler invocation list.\n */\nimport \"reflect-metadata\";\nimport { METADATA_KEY, PARAM_TYPES } from \"../constants.js\";\nimport type { ParamMetadata } from \"../di/tokens.js\";\n\nexport function createParamDecorator(\n\ttype: number,\n\tdata?: string | object,\n): ParameterDecorator {\n\treturn (\n\t\ttarget: object,\n\t\tpropertyKey: string | symbol | undefined,\n\t\tparameterIndex: number,\n\t) => {\n\t\t// Method parameter: target is the prototype, propertyKey is the method name.\n\t\t// Constructor parameter: target is the class, propertyKey is undefined.\n\t\tif (propertyKey !== undefined) {\n\t\t\tconst params: ParamMetadata[] =\n\t\t\t\tReflect.getMetadata(METADATA_KEY.PARAMS, target, propertyKey) ?? [];\n\t\t\tparams.push({\n\t\t\t\tindex: parameterIndex,\n\t\t\t\ttype,\n\t\t\t\tname: typeof data === \"string\" ? data : undefined,\n\t\t\t\tdata: typeof data === \"object\" ? data : undefined,\n\t\t\t});\n\t\t\tReflect.defineMetadata(METADATA_KEY.PARAMS, params, target, propertyKey);\n\t\t} else {\n\t\t\tconst params: ParamMetadata[] =\n\t\t\t\tReflect.getMetadata(METADATA_KEY.PARAMS, target) ?? [];\n\t\t\tparams.push({\n\t\t\t\tindex: parameterIndex,\n\t\t\t\ttype,\n\t\t\t\tname: typeof data === \"string\" ? data : undefined,\n\t\t\t\tdata: typeof data === \"object\" ? data : undefined,\n\t\t\t});\n\t\t\tReflect.defineMetadata(METADATA_KEY.PARAMS, params, target);\n\t\t}\n\t};\n}\n\nexport const Req = () => createParamDecorator(PARAM_TYPES.REQUEST);\nexport const Res = () => createParamDecorator(PARAM_TYPES.RESPONSE);\nexport const Next = () => createParamDecorator(PARAM_TYPES.NEXT);\nexport const Body = (key?: string) =>\n\tcreateParamDecorator(PARAM_TYPES.BODY, key);\nexport const Query = (key?: string) =>\n\tcreateParamDecorator(PARAM_TYPES.QUERY, key);\nexport const Param = (key?: string) =>\n\tcreateParamDecorator(PARAM_TYPES.PARAM, key);\nexport const Headers = (key?: string) =>\n\tcreateParamDecorator(PARAM_TYPES.HEADERS, key);\nexport const Ctx = () => createParamDecorator(PARAM_TYPES.CTX);\nexport const User = () => createParamDecorator(PARAM_TYPES.USER);\n\nexport function getParamMetadata(\n\ttarget: any,\n\tpropertyKey: string | symbol,\n): ParamMetadata[] {\n\treturn Reflect.getMetadata(METADATA_KEY.PARAMS, target, propertyKey) ?? [];\n}\n\nexport { PARAM_TYPES };\n",
|
|
9
|
+
"/**\n * @Validate decorator.\n *\n * Attaches Zod schemas (or class validators) to a route handler. Each\n * schema is run against the corresponding request part before the handler\n * executes; failed validation throws or returns a 400 response.\n *\n * @example\n * ```ts\n * const UserSchema = z.object({ name: z.string(), email: z.email() });\n *\n * @Post('/')\n * @Validate({ body: UserSchema })\n * create(@Body() body: z.infer<typeof UserSchema>) { ... }\n * ```\n */\nimport \"reflect-metadata\";\nimport { METADATA_KEY } from \"../constants.js\";\nimport type { ValidationMetadata } from \"../di/tokens.js\";\n\nexport function Validate(options: ValidationMetadata): MethodDecorator {\n\treturn (\n\t\ttarget: object,\n\t\tpropertyKey: string | symbol,\n\t\tdescriptor: PropertyDescriptor,\n\t) => {\n\t\tReflect.defineMetadata(\n\t\t\tMETADATA_KEY.VALIDATE,\n\t\t\toptions,\n\t\t\ttarget.constructor,\n\t\t\tpropertyKey,\n\t\t);\n\t};\n}\n\nexport function getValidationMetadata(\n\ttarget: any,\n\tpropertyKey: string | symbol,\n): ValidationMetadata | undefined {\n\treturn Reflect.getMetadata(METADATA_KEY.VALIDATE, target, propertyKey);\n}\n",
|
|
10
|
+
"/**\n * `nexusjs/drive` — file storage abstraction.\n *\n * const drive = new DriveService({ driver: new LocalDriver({ root: '/var/data' }) });\n * await drive.put('avatars/42.png', bytes, { contentType: 'image/png' });\n * const buf = await drive.get('avatars/42.png');\n *\n * Drivers:\n * - `LocalDriver` — local filesystem\n * - `MemoryDriver` — in-memory map (tests, ephemeral)\n * - `S3Driver` — AWS S3 / Cloudflare R2 (peer dep: @aws-sdk/client-s3)\n *\n * drive.getSignedUrl('avatars/42.png', { expiresIn: 3600 });\n * drive.exists('avatars/42.png');\n * drive.delete('avatars/42.png');\n * drive.list('avatars/');\n */\n\nimport \"reflect-metadata\";\n\n/** File content: Buffer, Uint8Array, or string. */\nexport type FileContent = Buffer | Uint8Array | string;\n\n/** Metadata returned by `head()`. */\nexport interface FileMetadata {\n\t/** Full key. */\n\tkey: string;\n\t/** Size in bytes. */\n\tsize: number;\n\t/** Detected MIME type, if known. */\n\tcontentType?: string;\n\t/** Last-modified time (unix-ms). */\n\tlastModified: number;\n\t/** ETag, if available. */\n\tetag?: string;\n\t/** Custom user metadata. */\n\tmetadata?: Record<string, string>;\n}\n\n/** Options for `put()`. */\nexport interface PutOptions {\n\t/** MIME type. Auto-detected if omitted. */\n\tcontentType?: string;\n\t/** Cache-Control header. */\n\tcacheControl?: string;\n\t/** Custom user metadata. */\n\tmetadata?: Record<string, string>;\n\t/** S3-style ACL (`public-read`, `private`, etc.). */\n\tacl?: string;\n}\n\n/** Options for signed URL. */\nexport interface SignedUrlOptions {\n\t/** Time until the URL expires, in seconds. */\n\texpiresIn?: number;\n\t/** Force download with the given filename. */\n\tasAttachment?: string;\n\t/** Override the Content-Type of the response. */\n\tcontentType?: string;\n\t/** Method. Default: GET. */\n\tmethod?: \"GET\" | \"PUT\" | \"DELETE\";\n}\n\n/** Options for listing. */\nexport interface ListOptions {\n\t/** Return only keys with this prefix. */\n\tprefix?: string;\n\t/** Maximum results. */\n\tlimit?: number;\n\t/** Pagination cursor. */\n\tcursor?: string;\n}\n\n/** A single listing result. */\nexport interface ListResult {\n\tkeys: string[];\n\t/** True if more results are available. */\n\thasMore: boolean;\n\t/** Cursor for the next page. */\n\tcursor?: string;\n}\n\n/** A driver is a single backing store. */\nexport interface StorageDriver {\n\treadonly kind: string;\n\tput(key: string, body: FileContent, opts?: PutOptions): Promise<void>;\n\tget(key: string): Promise<Buffer>;\n\tdelete(key: string): Promise<boolean>;\n\texists(key: string): Promise<boolean>;\n\thead(key: string): Promise<FileMetadata>;\n\tlist(opts?: ListOptions): Promise<ListResult>;\n\tgetSignedUrl(key: string, opts?: SignedUrlOptions): Promise<string>;\n\tcopy(src: string, dest: string): Promise<void>;\n\tmove(src: string, dest: string): Promise<void>;\n}\n\n/** Top-level Drive configuration. */\nexport interface DriveConfig {\n\t/** Storage driver. Default: in-memory. */\n\tdriver?: StorageDriver;\n\t/** Default visibility hint passed to drivers that support it. */\n\tdefaultVisibility?: \"public\" | \"private\";\n\t/** Custom URL builder for `getSignedUrl` (default returns a `nexus://` URL). */\n\tsignedUrlBuilder?: (key: string, opts?: SignedUrlOptions) => Promise<string>;\n}\n",
|
|
11
|
+
"/**\n * In-memory storage driver. Useful for tests, ephemeral state, and\n * single-process deploys that need a quick KV-like store.\n */\nimport type {\n\tFileContent,\n\tFileMetadata,\n\tListOptions,\n\tListResult,\n\tPutOptions,\n\tSignedUrlOptions,\n\tStorageDriver,\n} from \"../types.js\";\n\ninterface MemEntry {\n\tbody: Buffer;\n\tmeta: FileMetadata;\n}\n\nexport class MemoryDriver implements StorageDriver {\n\treadonly kind = \"memory\";\n\tprivate data = new Map<string, MemEntry>();\n\n\tasync put(\n\t\tkey: string,\n\t\tbody: FileContent,\n\t\topts: PutOptions = {},\n\t): Promise<void> {\n\t\tconst buf = toBuffer(body);\n\t\tconst contentType = opts.contentType ?? \"application/octet-stream\";\n\t\tthis.data.set(key, {\n\t\t\tbody: buf,\n\t\t\tmeta: {\n\t\t\t\tkey,\n\t\t\t\tsize: buf.length,\n\t\t\t\tcontentType,\n\t\t\t\tlastModified: Date.now(),\n\t\t\t\tetag: simpleEtag(buf),\n\t\t\t\tmetadata: opts.metadata,\n\t\t\t},\n\t\t});\n\t}\n\n\tasync get(key: string): Promise<Buffer> {\n\t\tconst e = this.data.get(key);\n\t\tif (!e) throw new Error(`File not found: ${key}`);\n\t\treturn e.body;\n\t}\n\n\tasync delete(key: string): Promise<boolean> {\n\t\treturn this.data.delete(key);\n\t}\n\n\tasync exists(key: string): Promise<boolean> {\n\t\treturn this.data.has(key);\n\t}\n\n\tasync head(key: string): Promise<FileMetadata> {\n\t\tconst e = this.data.get(key);\n\t\tif (!e) throw new Error(`File not found: ${key}`);\n\t\treturn { ...e.meta };\n\t}\n\n\tasync list(opts: ListOptions = {}): Promise<ListResult> {\n\t\tconst all = [...this.data.keys()].sort();\n\t\tconst prefix = opts.prefix ?? \"\";\n\t\tconst filtered = prefix ? all.filter((k) => k.startsWith(prefix)) : all;\n\t\tconst limit = opts.limit ?? 1000;\n\t\tconst startIdx = opts.cursor ? Number(opts.cursor) : 0;\n\t\tconst endIdx = Math.min(startIdx + limit, filtered.length);\n\t\tconst slice = filtered.slice(startIdx, endIdx);\n\t\treturn {\n\t\t\tkeys: slice,\n\t\t\thasMore: endIdx < filtered.length,\n\t\t\tcursor: endIdx < filtered.length ? String(endIdx) : undefined,\n\t\t};\n\t}\n\n\tasync getSignedUrl(\n\t\tkey: string,\n\t\t_opts: SignedUrlOptions = {},\n\t): Promise<string> {\n\t\tif (!this.data.has(key)) throw new Error(`File not found: ${key}`);\n\t\t// No signing in-memory; return a sentinel URL.\n\t\treturn `memory://${encodeURIComponent(key)}`;\n\t}\n\n\tasync copy(src: string, dest: string): Promise<void> {\n\t\tconst e = this.data.get(src);\n\t\tif (!e) throw new Error(`File not found: ${src}`);\n\t\tthis.data.set(dest, {\n\t\t\tbody: e.body,\n\t\t\tmeta: { ...e.meta, key: dest, lastModified: Date.now() },\n\t\t});\n\t}\n\n\tasync move(src: string, dest: string): Promise<void> {\n\t\tawait this.copy(src, dest);\n\t\tthis.data.delete(src);\n\t}\n}\n\nfunction toBuffer(body: FileContent): Buffer {\n\tif (typeof body === \"string\") return Buffer.from(body, \"utf-8\");\n\treturn Buffer.isBuffer(body) ? body : Buffer.from(body);\n}\n\nfunction simpleEtag(buf: Buffer): string {\n\t// Not cryptographic; just a stable hash for cache invalidation.\n\tlet h = 5381;\n\tfor (let i = 0; i < buf.length; i++) h = ((h << 5) + h + buf[i]) | 0;\n\treturn `\"${(h >>> 0).toString(16)}\"`;\n}\n",
|
|
12
|
+
"/**\n * Local-filesystem driver. Stores files under a `root` directory.\n *\n * - Path traversal is rejected (`..`, absolute paths).\n * - Creates intermediate directories on write.\n * - Uses node:fs/promises for portability with Node and Bun.\n */\nimport {\n\tmkdir,\n\treadFile,\n\tstat,\n\tunlink,\n\twriteFile,\n\treaddir,\n\trename,\n} from \"node:fs/promises\";\nimport { dirname, join, normalize, resolve, sep } from \"node:path\";\nimport type {\n\tFileContent,\n\tFileMetadata,\n\tListOptions,\n\tListResult,\n\tPutOptions,\n\tSignedUrlOptions,\n\tStorageDriver,\n} from \"../types.js\";\n\nexport interface LocalDriverOptions {\n\t/** Root directory for this driver. */\n\troot: string;\n\t/** Public URL prefix used for `getSignedUrl`. Default: '/files'. */\n\tpublicUrlPrefix?: string;\n}\n\nexport class LocalDriver implements StorageDriver {\n\treadonly kind = \"local\";\n\tprivate readonly root: string;\n\tprivate readonly publicUrlPrefix: string;\n\n\tconstructor(opts: LocalDriverOptions) {\n\t\tthis.root = resolve(opts.root);\n\t\tthis.publicUrlPrefix = opts.publicUrlPrefix ?? \"/files\";\n\t}\n\n\tprivate resolveKey(key: string): string {\n\t\tconst safe = normalize(key).replace(/^[/\\\\]+/, \"\");\n\t\tconst full = resolve(this.root, safe);\n\t\t// Ensure the resolved path is inside `root`.\n\t\tif (!full.startsWith(this.root + sep) && full !== this.root) {\n\t\t\tthrow new Error(`Path traversal blocked: ${key}`);\n\t\t}\n\t\treturn full;\n\t}\n\n\tasync put(\n\t\tkey: string,\n\t\tbody: FileContent,\n\t\t_opts: PutOptions = {},\n\t): Promise<void> {\n\t\tconst path = this.resolveKey(key);\n\t\tawait mkdir(dirname(path), { recursive: true });\n\t\tconst buf =\n\t\t\ttypeof body === \"string\" ? Buffer.from(body, \"utf-8\") : Buffer.from(body);\n\t\tawait writeFile(path, buf);\n\t}\n\n\tasync get(key: string): Promise<Buffer> {\n\t\tconst path = this.resolveKey(key);\n\t\ttry {\n\t\t\treturn await readFile(path);\n\t\t} catch (err) {\n\t\t\tif ((err as NodeJS.ErrnoException).code === \"ENOENT\") {\n\t\t\t\tthrow new Error(`File not found: ${key}`);\n\t\t\t}\n\t\t\tthrow err;\n\t\t}\n\t}\n\n\tasync delete(key: string): Promise<boolean> {\n\t\tconst path = this.resolveKey(key);\n\t\ttry {\n\t\t\tawait unlink(path);\n\t\t\treturn true;\n\t\t} catch (err) {\n\t\t\tif ((err as NodeJS.ErrnoException).code === \"ENOENT\") return false;\n\t\t\tthrow err;\n\t\t}\n\t}\n\n\tasync exists(key: string): Promise<boolean> {\n\t\ttry {\n\t\t\tawait stat(this.resolveKey(key));\n\t\t\treturn true;\n\t\t} catch {\n\t\t\treturn false;\n\t\t}\n\t}\n\n\tasync head(key: string): Promise<FileMetadata> {\n\t\tconst path = this.resolveKey(key);\n\t\ttry {\n\t\t\tconst s = await stat(path);\n\t\t\treturn {\n\t\t\t\tkey,\n\t\t\t\tsize: s.size,\n\t\t\t\tlastModified: s.mtimeMs,\n\t\t\t};\n\t\t} catch (err) {\n\t\t\tif ((err as NodeJS.ErrnoException).code === \"ENOENT\") {\n\t\t\t\tthrow new Error(`File not found: ${key}`);\n\t\t\t}\n\t\t\tthrow err;\n\t\t}\n\t}\n\n\tasync list(opts: ListOptions = {}): Promise<ListResult> {\n\t\tconst root = this.root;\n\t\tconst prefix = opts.prefix ?? \"\";\n\t\tconst all = await walk(root, \"\", prefix);\n\t\tall.sort();\n\t\tconst limit = opts.limit ?? 1000;\n\t\tconst startIdx = opts.cursor ? Number(opts.cursor) : 0;\n\t\tconst endIdx = Math.min(startIdx + limit, all.length);\n\t\tconst slice = all.slice(startIdx, endIdx);\n\t\treturn {\n\t\t\tkeys: slice,\n\t\t\thasMore: endIdx < all.length,\n\t\t\tcursor: endIdx < all.length ? String(endIdx) : undefined,\n\t\t};\n\t}\n\n\tasync getSignedUrl(\n\t\tkey: string,\n\t\t_opts: SignedUrlOptions = {},\n\t): Promise<string> {\n\t\t// Local driver: serve via a public prefix. Real signing would require\n\t\t// an upstream reverse proxy with signature verification.\n\t\treturn `${this.publicUrlPrefix}/${key}`;\n\t}\n\n\tasync copy(src: string, dest: string): Promise<void> {\n\t\tconst buf = await this.get(src);\n\t\tawait this.put(dest, buf);\n\t}\n\n\tasync move(src: string, dest: string): Promise<void> {\n\t\tconst from = this.resolveKey(src);\n\t\tconst to = this.resolveKey(dest);\n\t\tawait mkdir(dirname(to), { recursive: true });\n\t\tawait rename(from, to);\n\t}\n}\n\nasync function walk(\n\troot: string,\n\tdir: string,\n\tprefix: string,\n): Promise<string[]> {\n\tconst out: string[] = [];\n\tconst full = join(root, dir);\n\tlet entries;\n\ttry {\n\t\tentries = await readdir(full, { withFileTypes: true });\n\t} catch {\n\t\treturn out;\n\t}\n\tfor (const e of entries) {\n\t\tconst rel = dir ? `${dir}/${e.name}` : e.name;\n\t\tif (e.isDirectory()) {\n\t\t\t// Recurse if this directory is on the prefix path\n\t\t\t// (e.g. searching for 'a/1' should walk into 'a').\n\t\t\tif (\n\t\t\t\t!prefix ||\n\t\t\t\trel === prefix.slice(0, -1) ||\n\t\t\t\trel.startsWith(prefix) ||\n\t\t\t\tprefix.startsWith(`${rel}/`)\n\t\t\t) {\n\t\t\t\tconst sub = await walk(root, rel, prefix);\n\t\t\t\tout.push(...sub);\n\t\t\t}\n\t\t} else {\n\t\t\tif (!prefix || rel.startsWith(prefix)) {\n\t\t\t\tout.push(rel);\n\t\t\t}\n\t\t}\n\t}\n\treturn out;\n}\n",
|
|
13
|
+
"/**\n * S3-compatible driver. Works with AWS S3, Cloudflare R2, MinIO, etc.\n *\n * Implementation strategy: we keep the driver thin and use the\n * `@aws-sdk/client-s3` + `@aws-sdk/s3-request-presigner` packages\n * dynamically. They are listed as `peerDependenciesMeta.optional`\n * so they don't bloat the bundle for users not using S3.\n *\n * const driver = new S3Driver({\n * bucket: 'my-bucket',\n * region: 'us-east-1',\n * credentials: { accessKeyId, secretAccessKey },\n * });\n * const drive = new DriveService({ driver });\n */\nimport type {\n\tFileContent,\n\tFileMetadata,\n\tListOptions,\n\tListResult,\n\tPutOptions,\n\tSignedUrlOptions,\n\tStorageDriver,\n} from \"../types.js\";\n\nexport interface S3DriverOptions {\n\tbucket: string;\n\tregion: string;\n\tendpoint?: string;\n\taccessKeyId?: string;\n\tsecretAccessKey?: string;\n\t/** Optional public URL prefix override. */\n\tpublicUrlPrefix?: string;\n}\n\nexport class S3Driver implements StorageDriver {\n\treadonly kind = \"s3\";\n\tprivate opts: S3DriverOptions;\n\t// Lazily resolved at runtime to avoid bundling aws-sdk unless used.\n\tprivate _client: any = null;\n\tprivate _presigner: any = null;\n\n\tconstructor(opts: S3DriverOptions) {\n\t\tthis.opts = opts;\n\t}\n\n\tprivate async client() {\n\t\tif (this._client) return this._client;\n\t\ttry {\n\t\t\tconst mod = await import(\"@aws-sdk/client-s3\");\n\t\t\tconst ctor = mod.S3Client;\n\t\t\tthis._client = new ctor({\n\t\t\t\tregion: this.opts.region,\n\t\t\t\tendpoint: this.opts.endpoint,\n\t\t\t\tcredentials: this.opts.accessKeyId\n\t\t\t\t\t? {\n\t\t\t\t\t\t\taccessKeyId: this.opts.accessKeyId,\n\t\t\t\t\t\t\tsecretAccessKey: this.opts.secretAccessKey ?? \"\",\n\t\t\t\t\t\t}\n\t\t\t\t\t: undefined,\n\t\t\t});\n\t\t} catch (err) {\n\t\t\tthrow new Error(\n\t\t\t\t\"S3Driver requires @aws-sdk/client-s3. Install it with: bun add @aws-sdk/client-s3\",\n\t\t\t);\n\t\t}\n\t\treturn this._client;\n\t}\n\n\tprivate async presigner() {\n\t\tif (this._presigner) return this._presigner;\n\t\ttry {\n\t\t\tconst mod = await import(\"@aws-sdk/s3-request-presigner\");\n\t\t\tthis._presigner = mod.getSignedUrl;\n\t\t} catch {\n\t\t\tthrow new Error(\n\t\t\t\t\"S3Driver signed URLs require @aws-sdk/s3-request-presigner. Install it with: bun add @aws-sdk/s3-request-presigner\",\n\t\t\t);\n\t\t}\n\t\treturn this._presigner;\n\t}\n\n\tasync put(\n\t\tkey: string,\n\t\tbody: FileContent,\n\t\topts: PutOptions = {},\n\t): Promise<void> {\n\t\tconst client = await this.client();\n\t\tconst mod = await import(\"@aws-sdk/client-s3\");\n\t\tconst buf =\n\t\t\ttypeof body === \"string\" ? Buffer.from(body, \"utf-8\") : Buffer.from(body);\n\t\tconst command = new mod.PutObjectCommand({\n\t\t\tBucket: this.opts.bucket,\n\t\t\tKey: key,\n\t\t\tBody: buf,\n\t\t\tContentType: opts.contentType,\n\t\t\tCacheControl: opts.cacheControl,\n\t\t\tACL: opts.acl,\n\t\t\tMetadata: opts.metadata,\n\t\t});\n\t\tawait client.send(command);\n\t}\n\n\tasync get(key: string): Promise<Buffer> {\n\t\tconst client = await this.client();\n\t\tconst mod = await import(\"@aws-sdk/client-s3\");\n\t\tconst command = new mod.GetObjectCommand({\n\t\t\tBucket: this.opts.bucket,\n\t\t\tKey: key,\n\t\t});\n\t\tconst res = await client.send(command);\n\t\tconst chunks: Uint8Array[] = [];\n\t\tfor await (const chunk of res.Body as AsyncIterable<Uint8Array>)\n\t\t\tchunks.push(chunk);\n\t\treturn Buffer.concat(chunks);\n\t}\n\n\tasync delete(key: string): Promise<boolean> {\n\t\tconst client = await this.client();\n\t\tconst mod = await import(\"@aws-sdk/client-s3\");\n\t\tconst command = new mod.DeleteObjectCommand({\n\t\t\tBucket: this.opts.bucket,\n\t\t\tKey: key,\n\t\t});\n\t\tawait client.send(command);\n\t\treturn true;\n\t}\n\n\tasync exists(key: string): Promise<boolean> {\n\t\ttry {\n\t\t\tawait this.head(key);\n\t\t\treturn true;\n\t\t} catch {\n\t\t\treturn false;\n\t\t}\n\t}\n\n\tasync head(key: string): Promise<FileMetadata> {\n\t\tconst client = await this.client();\n\t\tconst mod = await import(\"@aws-sdk/client-s3\");\n\t\tconst command = new mod.HeadObjectCommand({\n\t\t\tBucket: this.opts.bucket,\n\t\t\tKey: key,\n\t\t});\n\t\tconst res = await client.send(command);\n\t\treturn {\n\t\t\tkey,\n\t\t\tsize: res.ContentLength ?? 0,\n\t\t\tcontentType: res.ContentType,\n\t\t\tlastModified: res.LastModified?.getTime() ?? Date.now(),\n\t\t\tetag: res.ETag,\n\t\t};\n\t}\n\n\tasync list(opts: ListOptions = {}): Promise<ListResult> {\n\t\tconst client = await this.client();\n\t\tconst mod = await import(\"@aws-sdk/client-s3\");\n\t\tconst command = new mod.ListObjectsV2Command({\n\t\t\tBucket: this.opts.bucket,\n\t\t\tPrefix: opts.prefix,\n\t\t\tMaxKeys: opts.limit,\n\t\t\tContinuationToken: opts.cursor,\n\t\t});\n\t\tconst res = await client.send(command);\n\t\tconst keys = (res.Contents ?? []).map((o: any) => o.Key as string);\n\t\treturn {\n\t\t\tkeys,\n\t\t\thasMore: Boolean(res.IsTruncated),\n\t\t\tcursor: res.NextContinuationToken,\n\t\t};\n\t}\n\n\tasync getSignedUrl(\n\t\tkey: string,\n\t\topts: SignedUrlOptions = {},\n\t): Promise<string> {\n\t\tconst client = await this.client();\n\t\tconst mod = await import(\"@aws-sdk/client-s3\");\n\t\tconst presigner = await this.presigner();\n\t\tconst expiresIn = opts.expiresIn ?? 3600;\n\t\tconst command = new mod.GetObjectCommand({\n\t\t\tBucket: this.opts.bucket,\n\t\t\tKey: key,\n\t\t\tResponseContentDisposition: opts.asAttachment\n\t\t\t\t? `attachment; filename=\"${opts.asAttachment}\"`\n\t\t\t\t: undefined,\n\t\t\tResponseContentType: opts.contentType,\n\t\t});\n\t\treturn presigner(client, command, { expiresIn });\n\t}\n\n\tasync copy(src: string, dest: string): Promise<void> {\n\t\tconst client = await this.client();\n\t\tconst mod = await import(\"@aws-sdk/client-s3\");\n\t\tconst command = new mod.CopyObjectCommand({\n\t\t\tBucket: this.opts.bucket,\n\t\t\tKey: dest,\n\t\t\tCopySource: `${this.opts.bucket}/${src}`,\n\t\t});\n\t\tawait client.send(command);\n\t}\n\n\tasync move(src: string, dest: string): Promise<void> {\n\t\tawait this.copy(src, dest);\n\t\tawait this.delete(src);\n\t}\n}\n",
|
|
14
|
+
"/**\n * @Module decorator.\n *\n * Marks a class as a Nest-style module: a logical grouping of\n * controllers and providers with explicit imports/exports.\n *\n * @example\n * ```ts\n * @Module({\n * imports: [UserModule],\n * controllers: [UserController],\n * providers: [UserService],\n * exports: [UserService],\n * })\n * class AppModule {}\n * ```\n */\nimport \"reflect-metadata\";\nimport { METADATA_KEY } from \"../constants.js\";\nimport type { ModuleOptions, Type } from \"../di/tokens.js\";\n\nexport function Module(options: ModuleOptions = {}): ClassDecorator {\n\treturn (target: object) => {\n\t\tReflect.defineMetadata(METADATA_KEY.MODULE, options, target);\n\t};\n}\n\n/** Read the @Module options from a class. */\nexport function getModuleOptions(target: Type<any>): ModuleOptions {\n\treturn Reflect.getMetadata(METADATA_KEY.MODULE, target) ?? {};\n}\n",
|
|
15
|
+
"/**\n * Convenience barrel for all decorators.\n */\nexport * from \"./module.js\";\nexport * from \"./controller.js\";\nexport * from \"./injectable.js\";\nexport * from \"./http-methods.js\";\nexport * from \"./params.js\";\nexport * from \"./validate.js\";\nexport * from \"./repository.js\";\nexport * from \"./metadata.js\";\n",
|
|
16
|
+
"/**\n * @Injectable decorator.\n *\n * Marks a class as available for DI. The container uses reflect-metadata's\n * `design:paramtypes` to read constructor parameter types and resolve them\n * automatically.\n *\n * @example\n * ```ts\n * @Injectable()\n * class UserService {\n * constructor(private repo: UserRepository) {}\n * }\n *\n * @Injectable({ scope: 'request' })\n * class RequestContext {\n * constructor(@Inject(REQUEST) private req: any) {}\n * }\n * ```\n */\nimport \"reflect-metadata\";\nimport { METADATA_KEY } from \"../constants.js\";\n\nexport interface InjectableOptions {\n\tscope?: \"singleton\" | \"request\" | \"transient\";\n}\n\nexport function Injectable(options: InjectableOptions = {}): ClassDecorator {\n\treturn (target: object) => {\n\t\tReflect.defineMetadata(METADATA_KEY.INJECTABLE, true, target);\n\t\tif (options.scope) {\n\t\t\tReflect.defineMetadata(\n\t\t\t\t\"nexus:di:scope\",\n\t\t\t\toptions.scope,\n\t\t\t\ttarget,\n\t\t\t);\n\t\t}\n\t};\n}\n\nexport function isInjectable(target: any): boolean {\n\treturn Reflect.hasMetadata(METADATA_KEY.INJECTABLE, target);\n}\n\n/**\n * Read the scope declared on a class via `@Injectable({ scope })`.\n * Returns undefined when no scope is declared (defaults to singleton).\n */\nexport function getScope(\n\ttarget: any,\n): \"singleton\" | \"request\" | \"transient\" | undefined {\n\treturn Reflect.getMetadata(\"nexus:di:scope\", target);\n}\n\n/**\n * Mark a parameter as resolved by a specific token instead of its declared\n * type. Useful for interfaces, abstract classes, or string tokens.\n *\n * @example\n * ```ts\n * constructor(@Inject('CONFIG') private config: AppConfig) {}\n * ```\n */\nexport function Inject<T = any>(token: any): ParameterDecorator {\n\treturn (\n\t\ttarget: object,\n\t\tpropertyKey: string | symbol | undefined,\n\t\tparameterIndex: number,\n\t) => {\n\t\tconst existing: Map<number, any> =\n\t\t\tReflect.getMetadata(METADATA_KEY.INJECT, target) ?? new Map();\n\t\texisting.set(parameterIndex, token);\n\t\tReflect.defineMetadata(METADATA_KEY.INJECT, existing, target);\n\t};\n}",
|
|
17
|
+
"/**\n * @Repository decorator.\n *\n * Marks a class as a Spring-style repository. Repositories are normal\n * `@Injectable()` classes; the decorator is a marker so the framework\n * can register them with a database adapter (Drizzle/Prisma) and emit\n * a friendly error if you forget to wire one.\n *\n * @example\n * ```ts\n * @Repository()\n * class UserRepository {\n * findAll() { return db.select().from(users); }\n * }\n * ```\n */\nimport \"reflect-metadata\";\nimport { METADATA_KEY } from \"../constants.js\";\nimport type { InjectionToken } from \"../di/tokens.js\";\n\nexport function Repository(entityToken?: InjectionToken<any>): ClassDecorator {\n\treturn (target: object) => {\n\t\tReflect.defineMetadata(\n\t\t\tMETADATA_KEY.REPOSITORY,\n\t\t\t{ entity: entityToken },\n\t\t\ttarget,\n\t\t);\n\t\tReflect.defineMetadata(METADATA_KEY.INJECTABLE, true, target);\n\t};\n}\n\nexport function getRepositoryMetadata(\n\ttarget: any,\n): { entity?: InjectionToken<any> } | undefined {\n\treturn Reflect.getMetadata(METADATA_KEY.REPOSITORY, target);\n}\n\nexport function isRepository(target: any): boolean {\n\treturn Reflect.hasMetadata(METADATA_KEY.REPOSITORY, target);\n}\n",
|
|
18
|
+
"/**\n * Reflect-metadata helper. Centralizes the keys the framework uses so\n * decorator files stay clean.\n */\nexport { METADATA_KEY, PARAM_TYPES, HTTP_METHODS } from \"../constants.js\";\nexport type { MetadataKey, ParamType, HttpMethod } from \"../constants.js\";\n",
|
|
19
|
+
"/**\n * `DriveService` — public façade.\n *\n * const drive = new DriveService({ driver: new LocalDriver({ root: '/data' }) });\n * await drive.put('a.txt', 'hello');\n * const body = await drive.get('a.txt');\n */\nimport { Inject, Injectable } from \"../core/decorators/index.js\";\nimport { MemoryDriver } from \"./drivers/memory.js\";\nimport type {\n\tDriveConfig,\n\tFileContent,\n\tFileMetadata,\n\tListOptions,\n\tListResult,\n\tPutOptions,\n\tSignedUrlOptions,\n} from \"./types.js\";\n\n@Injectable()\nexport class DriveService {\n\t/** DI token. */\n\tstatic readonly TOKEN = Symbol.for(\"nexus:DriveService\");\n\n\tprivate _driver: import(\"./types.js\").StorageDriver;\n\tdefaultVisibility: NonNullable<DriveConfig[\"defaultVisibility\"]>;\n\tprivate signedUrlBuilder: NonNullable<DriveConfig[\"signedUrlBuilder\"]>;\n\n\tconstructor(@Inject(\"DRIVE_CONFIG\") config: DriveConfig = {}) {\n\t\tthis._driver = config.driver ?? new MemoryDriver();\n\t\tthis.defaultVisibility = config.defaultVisibility ?? \"private\";\n\t\tthis.signedUrlBuilder =\n\t\t\tconfig.signedUrlBuilder ??\n\t\t\t(async (key, opts) => this._driver.getSignedUrl(key, opts));\n\t}\n\n\t/** Direct access to the underlying driver (for advanced use). */\n\tget driver(): import(\"./types.js\").StorageDriver {\n\t\treturn this._driver;\n\t}\n\n\tasync put(key: string, body: FileContent, opts?: PutOptions): Promise<void> {\n\t\treturn this._driver.put(key, body, opts);\n\t}\n\n\tasync get(key: string): Promise<Buffer> {\n\t\treturn this._driver.get(key);\n\t}\n\n\tasync delete(key: string): Promise<boolean> {\n\t\treturn this._driver.delete(key);\n\t}\n\n\tasync exists(key: string): Promise<boolean> {\n\t\treturn this._driver.exists(key);\n\t}\n\n\tasync head(key: string): Promise<FileMetadata> {\n\t\treturn this._driver.head(key);\n\t}\n\n\tasync list(opts?: ListOptions): Promise<ListResult> {\n\t\treturn this._driver.list(opts);\n\t}\n\n\tasync getSignedUrl(key: string, opts?: SignedUrlOptions): Promise<string> {\n\t\treturn this.signedUrlBuilder(key, opts);\n\t}\n\n\tasync copy(src: string, dest: string): Promise<void> {\n\t\treturn this._driver.copy(src, dest);\n\t}\n\n\tasync move(src: string, dest: string): Promise<void> {\n\t\treturn this._driver.move(src, dest);\n\t}\n}\n",
|
|
20
|
+
"/**\n * `DriveModule` — drop-in file storage.\n *\n * @Module({\n * imports: [\n * DriveModule.forRoot({\n * driver: new LocalDriver({ root: '/var/data' }),\n * }),\n * ],\n * })\n * export class AppModule {}\n */\nimport \"reflect-metadata\";\nimport { Module } from \"../core/decorators/module.js\";\nimport { DriveService } from \"./drive.service.js\";\nimport { MemoryDriver } from \"./drivers/memory.js\";\nimport type { DriveConfig } from \"./types.js\";\n\n@Module({\n\tproviders: [\n\t\tDriveService,\n\t\t{ provide: DriveService.TOKEN, useExisting: DriveService },\n\t],\n\texports: [DriveService, DriveService.TOKEN],\n})\nexport class DriveModule {\n\tstatic forRoot(config: DriveConfig = {}) {\n\t\tconst cfg: DriveConfig = {\n\t\t\tdriver: new MemoryDriver(),\n\t\t\t...config,\n\t\t};\n\t\t@Module({\n\t\t\tproviders: [\n\t\t\t\tDriveService,\n\t\t\t\t{ provide: DriveService.TOKEN, useExisting: DriveService },\n\t\t\t\t{ provide: \"DRIVE_CONFIG\", useValue: cfg },\n\t\t\t],\n\t\t\texports: [DriveService, DriveService.TOKEN],\n\t\t})\n\t\tclass ConfiguredDriveModule {}\n\t\tObject.defineProperty(ConfiguredDriveModule, \"name\", {\n\t\t\tvalue: \"ConfiguredDriveModule\",\n\t\t});\n\t\treturn ConfiguredDriveModule;\n\t}\n}\n"
|
|
21
|
+
],
|
|
22
|
+
"mappings": "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",
|
|
23
|
+
"debugId": "C2F94501704A40FC64756E2164756E21",
|
|
24
|
+
"names": []
|
|
25
|
+
}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `nexusjs/drive` — file storage abstraction.
|
|
3
|
+
*
|
|
4
|
+
* const drive = new DriveService({ driver: new LocalDriver({ root: '/var/data' }) });
|
|
5
|
+
* await drive.put('avatars/42.png', bytes, { contentType: 'image/png' });
|
|
6
|
+
* const buf = await drive.get('avatars/42.png');
|
|
7
|
+
*
|
|
8
|
+
* Drivers:
|
|
9
|
+
* - `LocalDriver` — local filesystem
|
|
10
|
+
* - `MemoryDriver` — in-memory map (tests, ephemeral)
|
|
11
|
+
* - `S3Driver` — AWS S3 / Cloudflare R2 (peer dep: @aws-sdk/client-s3)
|
|
12
|
+
*
|
|
13
|
+
* drive.getSignedUrl('avatars/42.png', { expiresIn: 3600 });
|
|
14
|
+
* drive.exists('avatars/42.png');
|
|
15
|
+
* drive.delete('avatars/42.png');
|
|
16
|
+
* drive.list('avatars/');
|
|
17
|
+
*/
|
|
18
|
+
import "reflect-metadata";
|
|
19
|
+
/** File content: Buffer, Uint8Array, or string. */
|
|
20
|
+
export type FileContent = Buffer | Uint8Array | string;
|
|
21
|
+
/** Metadata returned by `head()`. */
|
|
22
|
+
export interface FileMetadata {
|
|
23
|
+
/** Full key. */
|
|
24
|
+
key: string;
|
|
25
|
+
/** Size in bytes. */
|
|
26
|
+
size: number;
|
|
27
|
+
/** Detected MIME type, if known. */
|
|
28
|
+
contentType?: string;
|
|
29
|
+
/** Last-modified time (unix-ms). */
|
|
30
|
+
lastModified: number;
|
|
31
|
+
/** ETag, if available. */
|
|
32
|
+
etag?: string;
|
|
33
|
+
/** Custom user metadata. */
|
|
34
|
+
metadata?: Record<string, string>;
|
|
35
|
+
}
|
|
36
|
+
/** Options for `put()`. */
|
|
37
|
+
export interface PutOptions {
|
|
38
|
+
/** MIME type. Auto-detected if omitted. */
|
|
39
|
+
contentType?: string;
|
|
40
|
+
/** Cache-Control header. */
|
|
41
|
+
cacheControl?: string;
|
|
42
|
+
/** Custom user metadata. */
|
|
43
|
+
metadata?: Record<string, string>;
|
|
44
|
+
/** S3-style ACL (`public-read`, `private`, etc.). */
|
|
45
|
+
acl?: string;
|
|
46
|
+
}
|
|
47
|
+
/** Options for signed URL. */
|
|
48
|
+
export interface SignedUrlOptions {
|
|
49
|
+
/** Time until the URL expires, in seconds. */
|
|
50
|
+
expiresIn?: number;
|
|
51
|
+
/** Force download with the given filename. */
|
|
52
|
+
asAttachment?: string;
|
|
53
|
+
/** Override the Content-Type of the response. */
|
|
54
|
+
contentType?: string;
|
|
55
|
+
/** Method. Default: GET. */
|
|
56
|
+
method?: "GET" | "PUT" | "DELETE";
|
|
57
|
+
}
|
|
58
|
+
/** Options for listing. */
|
|
59
|
+
export interface ListOptions {
|
|
60
|
+
/** Return only keys with this prefix. */
|
|
61
|
+
prefix?: string;
|
|
62
|
+
/** Maximum results. */
|
|
63
|
+
limit?: number;
|
|
64
|
+
/** Pagination cursor. */
|
|
65
|
+
cursor?: string;
|
|
66
|
+
}
|
|
67
|
+
/** A single listing result. */
|
|
68
|
+
export interface ListResult {
|
|
69
|
+
keys: string[];
|
|
70
|
+
/** True if more results are available. */
|
|
71
|
+
hasMore: boolean;
|
|
72
|
+
/** Cursor for the next page. */
|
|
73
|
+
cursor?: string;
|
|
74
|
+
}
|
|
75
|
+
/** A driver is a single backing store. */
|
|
76
|
+
export interface StorageDriver {
|
|
77
|
+
readonly kind: string;
|
|
78
|
+
put(key: string, body: FileContent, opts?: PutOptions): Promise<void>;
|
|
79
|
+
get(key: string): Promise<Buffer>;
|
|
80
|
+
delete(key: string): Promise<boolean>;
|
|
81
|
+
exists(key: string): Promise<boolean>;
|
|
82
|
+
head(key: string): Promise<FileMetadata>;
|
|
83
|
+
list(opts?: ListOptions): Promise<ListResult>;
|
|
84
|
+
getSignedUrl(key: string, opts?: SignedUrlOptions): Promise<string>;
|
|
85
|
+
copy(src: string, dest: string): Promise<void>;
|
|
86
|
+
move(src: string, dest: string): Promise<void>;
|
|
87
|
+
}
|
|
88
|
+
/** Top-level Drive configuration. */
|
|
89
|
+
export interface DriveConfig {
|
|
90
|
+
/** Storage driver. Default: in-memory. */
|
|
91
|
+
driver?: StorageDriver;
|
|
92
|
+
/** Default visibility hint passed to drivers that support it. */
|
|
93
|
+
defaultVisibility?: "public" | "private";
|
|
94
|
+
/** Custom URL builder for `getSignedUrl` (default returns a `nexus://` URL). */
|
|
95
|
+
signedUrlBuilder?: (key: string, opts?: SignedUrlOptions) => Promise<string>;
|
|
96
|
+
}
|
|
97
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/drive/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,kBAAkB,CAAC;AAE1B,mDAAmD;AACnD,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,UAAU,GAAG,MAAM,CAAC;AAEvD,qCAAqC;AACrC,MAAM,WAAW,YAAY;IAC5B,gBAAgB;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,qBAAqB;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,oCAAoC;IACpC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oCAAoC;IACpC,YAAY,EAAE,MAAM,CAAC;IACrB,0BAA0B;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,4BAA4B;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAED,2BAA2B;AAC3B,MAAM,WAAW,UAAU;IAC1B,2CAA2C;IAC3C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4BAA4B;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,4BAA4B;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,qDAAqD;IACrD,GAAG,CAAC,EAAE,MAAM,CAAC;CACb;AAED,8BAA8B;AAC9B,MAAM,WAAW,gBAAgB;IAChC,8CAA8C;IAC9C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,8CAA8C;IAC9C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iDAAiD;IACjD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4BAA4B;IAC5B,MAAM,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,QAAQ,CAAC;CAClC;AAED,2BAA2B;AAC3B,MAAM,WAAW,WAAW;IAC3B,yCAAyC;IACzC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,uBAAuB;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,yBAAyB;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,+BAA+B;AAC/B,MAAM,WAAW,UAAU;IAC1B,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,0CAA0C;IAC1C,OAAO,EAAE,OAAO,CAAC;IACjB,gCAAgC;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,0CAA0C;AAC1C,MAAM,WAAW,aAAa;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtE,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAClC,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACtC,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACtC,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IACzC,IAAI,CAAC,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAC9C,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACpE,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/C,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/C;AAED,qCAAqC;AACrC,MAAM,WAAW,WAAW;IAC3B,0CAA0C;IAC1C,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,iEAAiE;IACjE,iBAAiB,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;IACzC,gFAAgF;IAChF,gBAAgB,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,gBAAgB,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CAC7E"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Decorator metadata for the @Table / @Column / @PrimaryKey stack.
|
|
3
|
+
*
|
|
4
|
+
* These are used together with `DrizzleModel` to give Lucid-like
|
|
5
|
+
* ergonomics on top of Drizzle's table-builder API. The decorators
|
|
6
|
+
* record metadata that the repository can read for default queries.
|
|
7
|
+
*/
|
|
8
|
+
import "reflect-metadata";
|
|
9
|
+
import { type ColumnMetadata, type TableMetadata } from "../types.js";
|
|
10
|
+
export declare function Table(name: string): ClassDecorator;
|
|
11
|
+
export declare function Column(opts?: Partial<ColumnMetadata>): PropertyDecorator;
|
|
12
|
+
export declare function PrimaryKey(opts?: Partial<ColumnMetadata>): PropertyDecorator;
|
|
13
|
+
export declare function getTableMeta(target: any): TableMetadata;
|
|
14
|
+
export declare function readTableMeta(target: any): TableMetadata | undefined;
|
|
15
|
+
export type { ColumnMetadata, TableMetadata } from "../types.js";
|
|
16
|
+
//# sourceMappingURL=columns.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"columns.d.ts","sourceRoot":"","sources":["../../../src/drizzle/decorators/columns.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAEN,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,MAAM,aAAa,CAAC;AAErB,wBAAgB,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CAYlD;AAED,wBAAgB,MAAM,CAAC,IAAI,GAAE,OAAO,CAAC,cAAc,CAAM,GAAG,iBAAiB,CAc5E;AAED,wBAAgB,UAAU,CACzB,IAAI,GAAE,OAAO,CAAC,cAAc,CAAM,GAChC,iBAAiB,CAanB;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,GAAG,GAAG,aAAa,CAOvD;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,GAAG,GAAG,aAAa,GAAG,SAAS,CAEpE;AAED,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/drizzle/decorators/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EACN,KAAK,EACL,MAAM,EACN,UAAU,EACV,YAAY,EACZ,aAAa,GACb,MAAM,cAAc,CAAC;AACtB,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Common driver contract.
|
|
3
|
+
*/
|
|
4
|
+
import type { DrizzleConfig } from "../types.js";
|
|
5
|
+
export interface DrizzleDriverResult {
|
|
6
|
+
/** The Drizzle database instance (dialect-specific). */
|
|
7
|
+
db: any;
|
|
8
|
+
/** Optional migrator (loaded lazily). */
|
|
9
|
+
loadMigrator?: () => Promise<(folder: string) => Promise<void>>;
|
|
10
|
+
/** Close the connection. */
|
|
11
|
+
close?: () => Promise<void>;
|
|
12
|
+
/** Drizzle dialect name. */
|
|
13
|
+
dialect: string;
|
|
14
|
+
/** Native connection used for raw queries. */
|
|
15
|
+
rawExecutor?: RawExecutor;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* A connection that can execute raw SQL. Used by `db.raw\`\`` and
|
|
19
|
+
* `db.rawQuery(...)` to run un-typed but parameterized queries.
|
|
20
|
+
*/
|
|
21
|
+
export interface RawExecutor {
|
|
22
|
+
/** Execute a parameterized query. */
|
|
23
|
+
query<T = Record<string, unknown>>(sql: string, params?: unknown[]): Promise<{
|
|
24
|
+
rows: T[];
|
|
25
|
+
affectedRows: number;
|
|
26
|
+
insertId?: string | number;
|
|
27
|
+
}>;
|
|
28
|
+
/** Quote-style for the dialect (`$1` for postgres, `?` for sqlite/mysql). */
|
|
29
|
+
placeholder(index: number): string;
|
|
30
|
+
}
|
|
31
|
+
export type DriverFactory = (config: DrizzleConfig) => Promise<DrizzleDriverResult>;
|
|
32
|
+
//# sourceMappingURL=base.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../src/drizzle/drivers/base.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,MAAM,WAAW,mBAAmB;IACnC,wDAAwD;IACxD,EAAE,EAAE,GAAG,CAAC;IACR,yCAAyC;IACzC,YAAY,CAAC,EAAE,MAAM,OAAO,CAAC,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IAChE,4BAA4B;IAC5B,KAAK,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,4BAA4B;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,8CAA8C;IAC9C,WAAW,CAAC,EAAE,WAAW,CAAC;CAC1B;AAED;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC3B,qCAAqC;IACrC,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,OAAO,EAAE,GAChB,OAAO,CAAC;QAAE,IAAI,EAAE,CAAC,EAAE,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC,CAAC;IAC5E,6EAA6E;IAC7E,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;CACnC;AAED,MAAM,MAAM,aAAa,GAAG,CAC3B,MAAM,EAAE,aAAa,KACjB,OAAO,CAAC,mBAAmB,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bun-sqlite.d.ts","sourceRoot":"","sources":["../../../src/drizzle/drivers/bun-sqlite.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,aAAa,EAAe,MAAM,WAAW,CAAC;AAG5D,eAAO,MAAM,eAAe,EAAE,aA2C7B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"d1.d.ts","sourceRoot":"","sources":["../../../src/drizzle/drivers/d1.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,aAAa,EAAe,MAAM,WAAW,CAAC;AAE5D,eAAO,MAAM,QAAQ,EAAE,aAgDtB,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Drivers barrel — exports a `resolveDriver` that picks the right one
|
|
3
|
+
* based on `config.dialect`.
|
|
4
|
+
*/
|
|
5
|
+
import type { DrizzleConfig } from "../types.js";
|
|
6
|
+
import type { DrizzleDriverResult } from "./base.js";
|
|
7
|
+
export { postgresDriver } from "./postgres.js";
|
|
8
|
+
export { mysqlDriver } from "./mysql.js";
|
|
9
|
+
export { sqliteDriver } from "./sqlite.js";
|
|
10
|
+
export { bunSqliteDriver } from "./bun-sqlite.js";
|
|
11
|
+
export { d1Driver } from "./d1.js";
|
|
12
|
+
export type { DrizzleDriverResult, RawExecutor, DriverFactory, } from "./base.js";
|
|
13
|
+
export declare function resolveDriver(config: DrizzleConfig): Promise<DrizzleDriverResult>;
|
|
14
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/drizzle/drivers/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAOrD,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnC,YAAY,EACX,mBAAmB,EACnB,WAAW,EACX,aAAa,GACb,MAAM,WAAW,CAAC;AAEnB,wBAAsB,aAAa,CAClC,MAAM,EAAE,aAAa,GACnB,OAAO,CAAC,mBAAmB,CAAC,CAa9B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mysql.d.ts","sourceRoot":"","sources":["../../../src/drizzle/drivers/mysql.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,aAAa,EAAe,MAAM,WAAW,CAAC;AAG5D,eAAO,MAAM,WAAW,EAAE,aA4CzB,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PostgreSQL driver. Two implementations are supported:
|
|
3
|
+
*
|
|
4
|
+
* - `postgres` (postgres.js) — fast, modern, default.
|
|
5
|
+
* - `pg` (node-postgres) — classic, used in many existing projects.
|
|
6
|
+
*
|
|
7
|
+
* The first available driver is loaded at boot. The migrator path
|
|
8
|
+
* follows whichever driver was selected.
|
|
9
|
+
*/
|
|
10
|
+
import type { DriverFactory } from "./base.js";
|
|
11
|
+
export declare const postgresDriver: DriverFactory;
|
|
12
|
+
//# sourceMappingURL=postgres.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"postgres.d.ts","sourceRoot":"","sources":["../../../src/drizzle/drivers/postgres.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,EAEX,aAAa,EAEb,MAAM,WAAW,CAAC;AAGnB,eAAO,MAAM,cAAc,EAAE,aAuF5B,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SQLite driver. Uses `better-sqlite3` (synchronous, fast).
|
|
3
|
+
*
|
|
4
|
+
* For edge / Workers, use `bun-sqlite` or `d1` instead.
|
|
5
|
+
*/
|
|
6
|
+
import type { DriverFactory } from "./base.js";
|
|
7
|
+
export declare const sqliteDriver: DriverFactory;
|
|
8
|
+
//# sourceMappingURL=sqlite.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sqlite.d.ts","sourceRoot":"","sources":["../../../src/drizzle/drivers/sqlite.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,aAAa,EAAe,MAAM,WAAW,CAAC;AAG5D,eAAO,MAAM,YAAY,EAAE,aA2C1B,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `DrizzleModule` — drop-in database module.
|
|
3
|
+
*
|
|
4
|
+
* @Module({
|
|
5
|
+
* imports: [
|
|
6
|
+
* DrizzleModule.forRoot({
|
|
7
|
+
* dialect: 'bun-sqlite',
|
|
8
|
+
* connection: { filename: './data.db' },
|
|
9
|
+
* logging: true,
|
|
10
|
+
* }),
|
|
11
|
+
* ],
|
|
12
|
+
* })
|
|
13
|
+
* export class AppModule {}
|
|
14
|
+
*
|
|
15
|
+
* For Postgres:
|
|
16
|
+
* DrizzleModule.forRoot({
|
|
17
|
+
* dialect: 'postgres',
|
|
18
|
+
* connection: { url: process.env.DATABASE_URL! },
|
|
19
|
+
* pool: { max: 10 },
|
|
20
|
+
* });
|
|
21
|
+
*/
|
|
22
|
+
import "reflect-metadata";
|
|
23
|
+
import type { DrizzleConfig } from "./types.js";
|
|
24
|
+
export declare class DrizzleModule {
|
|
25
|
+
static forRoot(config: DrizzleConfig): {
|
|
26
|
+
new (): {};
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=drizzle.module.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"drizzle.module.d.ts","sourceRoot":"","sources":["../../src/drizzle/drizzle.module.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,kBAAkB,CAAC;AAG1B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,qBAOa,aAAa;IACzB,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,aAAa;;;CAepC"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import type { DrizzleConfig, MigrateResult, MigrationRecord } from "./types.js";
|
|
2
|
+
import { resolveDriver } from "./drivers/index.js";
|
|
3
|
+
import { RawQuery } from "./raw-query.js";
|
|
4
|
+
export declare class DrizzleService {
|
|
5
|
+
/** DI token. */
|
|
6
|
+
static readonly TOKEN: unique symbol;
|
|
7
|
+
driver: DrizzleDriverHandle | null;
|
|
8
|
+
private _client;
|
|
9
|
+
private _rawExecutor;
|
|
10
|
+
private _config;
|
|
11
|
+
private _opened;
|
|
12
|
+
private _migratorFn;
|
|
13
|
+
private _logger;
|
|
14
|
+
private _migrationsTable;
|
|
15
|
+
constructor(config: DrizzleConfig);
|
|
16
|
+
/** Synchronous open for bun-sqlite. */
|
|
17
|
+
private openSync;
|
|
18
|
+
/** Lazy-open the connection. */
|
|
19
|
+
open(): Promise<void>;
|
|
20
|
+
/** The raw Drizzle client. Use this for type-safe queries. */
|
|
21
|
+
get client(): any;
|
|
22
|
+
/** Configured dialect. */
|
|
23
|
+
get dialect(): string;
|
|
24
|
+
select(): any;
|
|
25
|
+
insert(table: any): any;
|
|
26
|
+
update(table: any): any;
|
|
27
|
+
delete(table: any): any;
|
|
28
|
+
transaction<T>(fn: (tx: DrizzleService) => Promise<T>): Promise<T>;
|
|
29
|
+
/**
|
|
30
|
+
* Tagged-template raw query.
|
|
31
|
+
*
|
|
32
|
+
* const id = "user-42";
|
|
33
|
+
* const rows = await db.raw`SELECT * FROM users WHERE id = ${id}`.all();
|
|
34
|
+
*
|
|
35
|
+
* Interpolation values are sent as bound parameters — never
|
|
36
|
+
* concatenated into the SQL text. This is the same primitive as
|
|
37
|
+
* Drizzle's `sql\`...\`` but exposed through the service so logging
|
|
38
|
+
* and dialect placeholders are handled consistently.
|
|
39
|
+
*/
|
|
40
|
+
raw(strings: TemplateStringsArray, ...values: unknown[]): RawQuery;
|
|
41
|
+
/** Direct parameterized query (no template tag). */
|
|
42
|
+
rawQuery<T = Record<string, unknown>>(sql: string, params?: unknown[]): Promise<T[]>;
|
|
43
|
+
migrate(folder: string): Promise<MigrateResult>;
|
|
44
|
+
appliedMigrations(): Promise<MigrationRecord[]>;
|
|
45
|
+
close(): Promise<void>;
|
|
46
|
+
attachLogger(fn: (q: string, p: unknown[]) => void): void;
|
|
47
|
+
private _assertOpen;
|
|
48
|
+
}
|
|
49
|
+
/** Internal: an open driver. */
|
|
50
|
+
type DrizzleDriverHandle = Awaited<ReturnType<typeof resolveDriver>>;
|
|
51
|
+
export {};
|
|
52
|
+
//# sourceMappingURL=drizzle.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"drizzle.service.d.ts","sourceRoot":"","sources":["../../src/drizzle/drizzle.service.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAChF,OAAO,EAAE,aAAa,EAAoB,MAAM,oBAAoB,CAAC;AACrE,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,qBACa,cAAc;IAC1B,gBAAgB;IAChB,MAAM,CAAC,QAAQ,CAAC,KAAK,gBAAsC;IAE3D,MAAM,EAAE,mBAAmB,GAAG,IAAI,CAAQ;IAC1C,OAAO,CAAC,OAAO,CAAa;IAC5B,OAAO,CAAC,YAAY,CAA4B;IAChD,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,WAAW,CAAoD;IACvE,OAAO,CAAC,OAAO,CAAoD;IACnE,OAAO,CAAC,gBAAgB,CAAwB;gBAEV,MAAM,EAAE,aAAa;IAY3D,uCAAuC;IACvC,OAAO,CAAC,QAAQ;IAkChB,gCAAgC;IAC1B,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAyB3B,8DAA8D;IAC9D,IAAI,MAAM,IAAI,GAAG,CAGhB;IAED,0BAA0B;IAC1B,IAAI,OAAO,IAAI,MAAM,CAEpB;IAMD,MAAM;IAIN,MAAM,CAAC,KAAK,EAAE,GAAG;IAIjB,MAAM,CAAC,KAAK,EAAE,GAAG;IAIjB,MAAM,CAAC,KAAK,EAAE,GAAG;IAQX,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,cAAc,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAaxE;;;;;;;;;;OAUG;IACH,GAAG,CAAC,OAAO,EAAE,oBAAoB,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,GAAG,QAAQ;IAQlE,oDAAoD;IAC9C,QAAQ,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACzC,GAAG,EAAE,MAAM,EACX,MAAM,GAAE,OAAO,EAAO,GACpB,OAAO,CAAC,CAAC,EAAE,CAAC;IAYT,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAY/C,iBAAiB,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;IAmB/C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ5B,YAAY,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,IAAI,GAAG,IAAI;IAQzD,OAAO,CAAC,WAAW;CAKnB;AAED,gCAAgC;AAChC,KAAK,mBAAmB,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,aAAa,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Public entry point for `nexusjs/drizzle`.
|
|
3
|
+
*/
|
|
4
|
+
export * from "./types.js";
|
|
5
|
+
export { DrizzleService } from "./drizzle.service.js";
|
|
6
|
+
export { DrizzleModule } from "./drizzle.module.js";
|
|
7
|
+
export { DrizzleModel } from "./model.js";
|
|
8
|
+
export { DrizzleRepository } from "./repository/index.js";
|
|
9
|
+
export { Table, Column, PrimaryKey, getTableMeta, readTableMeta, } from "./decorators/index.js";
|
|
10
|
+
export { RawQuery } from "./raw-query.js";
|
|
11
|
+
export { resolveDriver, postgresDriver, mysqlDriver, sqliteDriver, bunSqliteDriver, d1Driver, } from "./drivers/index.js";
|
|
12
|
+
export type { DrizzleDriverResult, RawExecutor, DriverFactory, } from "./drivers/index.js";
|
|
13
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/drizzle/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EACN,KAAK,EACL,MAAM,EACN,UAAU,EACV,YAAY,EACZ,aAAa,GACb,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EACN,aAAa,EACb,cAAc,EACd,WAAW,EACX,YAAY,EACZ,eAAe,EACf,QAAQ,GACR,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACX,mBAAmB,EACnB,WAAW,EACX,aAAa,GACb,MAAM,oBAAoB,CAAC"}
|