@seifer-webapp-factory/kits 0.1.0
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 +10 -0
- package/dist/backend/access-control/adapters/in-memory-relations.d.ts +7 -0
- package/dist/backend/access-control/adapters/in-memory-relations.d.ts.map +1 -0
- package/dist/backend/access-control/adapters/in-memory-relations.js +6 -0
- package/dist/backend/access-control/adapters/in-memory-relations.js.map +1 -0
- package/dist/backend/access-control/core/enforcement.d.ts +13 -0
- package/dist/backend/access-control/core/enforcement.d.ts.map +1 -0
- package/dist/backend/access-control/core/enforcement.js +38 -0
- package/dist/backend/access-control/core/enforcement.js.map +1 -0
- package/dist/backend/access-control/core/errors.d.ts +30 -0
- package/dist/backend/access-control/core/errors.d.ts.map +1 -0
- package/dist/backend/access-control/core/errors.js +46 -0
- package/dist/backend/access-control/core/errors.js.map +1 -0
- package/dist/backend/access-control/core/pdp.d.ts +14 -0
- package/dist/backend/access-control/core/pdp.d.ts.map +1 -0
- package/dist/backend/access-control/core/pdp.js +79 -0
- package/dist/backend/access-control/core/pdp.js.map +1 -0
- package/dist/backend/access-control/core/ports.d.ts +68 -0
- package/dist/backend/access-control/core/ports.d.ts.map +1 -0
- package/dist/backend/access-control/core/ports.js +6 -0
- package/dist/backend/access-control/core/ports.js.map +1 -0
- package/dist/backend/access-control/core/rbac.d.ts +10 -0
- package/dist/backend/access-control/core/rbac.d.ts.map +1 -0
- package/dist/backend/access-control/core/rbac.js +78 -0
- package/dist/backend/access-control/core/rbac.js.map +1 -0
- package/dist/backend/access-control/core/rebac.d.ts +15 -0
- package/dist/backend/access-control/core/rebac.d.ts.map +1 -0
- package/dist/backend/access-control/core/rebac.js +48 -0
- package/dist/backend/access-control/core/rebac.js.map +1 -0
- package/dist/backend/access-control/index.d.ts +15 -0
- package/dist/backend/access-control/index.d.ts.map +1 -0
- package/dist/backend/access-control/index.js +20 -0
- package/dist/backend/access-control/index.js.map +1 -0
- package/dist/backend/access-control/nestjs/access-control.module.d.ts +34 -0
- package/dist/backend/access-control/nestjs/access-control.module.d.ts.map +1 -0
- package/dist/backend/access-control/nestjs/access-control.module.js +80 -0
- package/dist/backend/access-control/nestjs/access-control.module.js.map +1 -0
- package/dist/backend/audit/adapters/in-memory-store.d.ts +3 -0
- package/dist/backend/audit/adapters/in-memory-store.d.ts.map +1 -0
- package/dist/backend/audit/adapters/in-memory-store.js +66 -0
- package/dist/backend/audit/adapters/in-memory-store.js.map +1 -0
- package/dist/backend/audit/adapters/pg-store.d.ts +22 -0
- package/dist/backend/audit/adapters/pg-store.d.ts.map +1 -0
- package/dist/backend/audit/adapters/pg-store.js +119 -0
- package/dist/backend/audit/adapters/pg-store.js.map +1 -0
- package/dist/backend/audit/core/audit-log.d.ts +41 -0
- package/dist/backend/audit/core/audit-log.d.ts.map +1 -0
- package/dist/backend/audit/core/audit-log.js +78 -0
- package/dist/backend/audit/core/audit-log.js.map +1 -0
- package/dist/backend/audit/core/errors.d.ts +22 -0
- package/dist/backend/audit/core/errors.d.ts.map +1 -0
- package/dist/backend/audit/core/errors.js +35 -0
- package/dist/backend/audit/core/errors.js.map +1 -0
- package/dist/backend/audit/core/hash.d.ts +9 -0
- package/dist/backend/audit/core/hash.d.ts.map +1 -0
- package/dist/backend/audit/core/hash.js +45 -0
- package/dist/backend/audit/core/hash.js.map +1 -0
- package/dist/backend/audit/core/ports.d.ts +68 -0
- package/dist/backend/audit/core/ports.d.ts.map +1 -0
- package/dist/backend/audit/core/ports.js +6 -0
- package/dist/backend/audit/core/ports.js.map +1 -0
- package/dist/backend/audit/index.d.ts +13 -0
- package/dist/backend/audit/index.d.ts.map +1 -0
- package/dist/backend/audit/index.js +16 -0
- package/dist/backend/audit/index.js.map +1 -0
- package/dist/backend/auth/adapters/argon2id-hasher.d.ts +15 -0
- package/dist/backend/auth/adapters/argon2id-hasher.d.ts.map +1 -0
- package/dist/backend/auth/adapters/argon2id-hasher.js +61 -0
- package/dist/backend/auth/adapters/argon2id-hasher.js.map +1 -0
- package/dist/backend/auth/adapters/in-memory-stores.d.ts +14 -0
- package/dist/backend/auth/adapters/in-memory-stores.d.ts.map +1 -0
- package/dist/backend/auth/adapters/in-memory-stores.js +86 -0
- package/dist/backend/auth/adapters/in-memory-stores.js.map +1 -0
- package/dist/backend/auth/core/auth-service.d.ts +40 -0
- package/dist/backend/auth/core/auth-service.d.ts.map +1 -0
- package/dist/backend/auth/core/auth-service.js +106 -0
- package/dist/backend/auth/core/auth-service.js.map +1 -0
- package/dist/backend/auth/core/credentials.d.ts +15 -0
- package/dist/backend/auth/core/credentials.d.ts.map +1 -0
- package/dist/backend/auth/core/credentials.js +15 -0
- package/dist/backend/auth/core/credentials.js.map +1 -0
- package/dist/backend/auth/core/crypto-util.d.ts +7 -0
- package/dist/backend/auth/core/crypto-util.d.ts.map +1 -0
- package/dist/backend/auth/core/crypto-util.js +15 -0
- package/dist/backend/auth/core/crypto-util.js.map +1 -0
- package/dist/backend/auth/core/errors.d.ts +33 -0
- package/dist/backend/auth/core/errors.d.ts.map +1 -0
- package/dist/backend/auth/core/errors.js +48 -0
- package/dist/backend/auth/core/errors.js.map +1 -0
- package/dist/backend/auth/core/jwt.d.ts +5 -0
- package/dist/backend/auth/core/jwt.d.ts.map +1 -0
- package/dist/backend/auth/core/jwt.js +40 -0
- package/dist/backend/auth/core/jwt.js.map +1 -0
- package/dist/backend/auth/core/ports.d.ts +100 -0
- package/dist/backend/auth/core/ports.d.ts.map +1 -0
- package/dist/backend/auth/core/ports.js +7 -0
- package/dist/backend/auth/core/ports.js.map +1 -0
- package/dist/backend/auth/core/single-use.d.ts +10 -0
- package/dist/backend/auth/core/single-use.d.ts.map +1 -0
- package/dist/backend/auth/core/single-use.js +47 -0
- package/dist/backend/auth/core/single-use.js.map +1 -0
- package/dist/backend/auth/core/tokens.d.ts +20 -0
- package/dist/backend/auth/core/tokens.d.ts.map +1 -0
- package/dist/backend/auth/core/tokens.js +96 -0
- package/dist/backend/auth/core/tokens.js.map +1 -0
- package/dist/backend/auth/index.d.ts +18 -0
- package/dist/backend/auth/index.d.ts.map +1 -0
- package/dist/backend/auth/index.js +22 -0
- package/dist/backend/auth/index.js.map +1 -0
- package/dist/backend/auth/nestjs/auth.module.d.ts +17 -0
- package/dist/backend/auth/nestjs/auth.module.d.ts.map +1 -0
- package/dist/backend/auth/nestjs/auth.module.js +18 -0
- package/dist/backend/auth/nestjs/auth.module.js.map +1 -0
- package/dist/backend/cache/adapters/in-memory-store.d.ts +6 -0
- package/dist/backend/cache/adapters/in-memory-store.d.ts.map +1 -0
- package/dist/backend/cache/adapters/in-memory-store.js +65 -0
- package/dist/backend/cache/adapters/in-memory-store.js.map +1 -0
- package/dist/backend/cache/adapters/redis-store.d.ts +32 -0
- package/dist/backend/cache/adapters/redis-store.d.ts.map +1 -0
- package/dist/backend/cache/adapters/redis-store.js +59 -0
- package/dist/backend/cache/adapters/redis-store.js.map +1 -0
- package/dist/backend/cache/core/cache.d.ts +31 -0
- package/dist/backend/cache/core/cache.d.ts.map +1 -0
- package/dist/backend/cache/core/cache.js +89 -0
- package/dist/backend/cache/core/cache.js.map +1 -0
- package/dist/backend/cache/core/errors.d.ts +17 -0
- package/dist/backend/cache/core/errors.d.ts.map +1 -0
- package/dist/backend/cache/core/errors.js +27 -0
- package/dist/backend/cache/core/errors.js.map +1 -0
- package/dist/backend/cache/core/lock.d.ts +21 -0
- package/dist/backend/cache/core/lock.d.ts.map +1 -0
- package/dist/backend/cache/core/lock.js +47 -0
- package/dist/backend/cache/core/lock.js.map +1 -0
- package/dist/backend/cache/core/ports.d.ts +33 -0
- package/dist/backend/cache/core/ports.d.ts.map +1 -0
- package/dist/backend/cache/core/ports.js +6 -0
- package/dist/backend/cache/core/ports.js.map +1 -0
- package/dist/backend/cache/core/pubsub.d.ts +14 -0
- package/dist/backend/cache/core/pubsub.d.ts.map +1 -0
- package/dist/backend/cache/core/pubsub.js +13 -0
- package/dist/backend/cache/core/pubsub.js.map +1 -0
- package/dist/backend/cache/core/serializer.d.ts +4 -0
- package/dist/backend/cache/core/serializer.d.ts.map +1 -0
- package/dist/backend/cache/core/serializer.js +6 -0
- package/dist/backend/cache/core/serializer.js.map +1 -0
- package/dist/backend/cache/index.d.ts +14 -0
- package/dist/backend/cache/index.d.ts.map +1 -0
- package/dist/backend/cache/index.js +19 -0
- package/dist/backend/cache/index.js.map +1 -0
- package/dist/backend/config/adapters/reporters.d.ts +17 -0
- package/dist/backend/config/adapters/reporters.d.ts.map +1 -0
- package/dist/backend/config/adapters/reporters.js +35 -0
- package/dist/backend/config/adapters/reporters.js.map +1 -0
- package/dist/backend/config/adapters/secret-resolvers.d.ts +21 -0
- package/dist/backend/config/adapters/secret-resolvers.d.ts.map +1 -0
- package/dist/backend/config/adapters/secret-resolvers.js +60 -0
- package/dist/backend/config/adapters/secret-resolvers.js.map +1 -0
- package/dist/backend/config/adapters/zod-schema.d.ts +20 -0
- package/dist/backend/config/adapters/zod-schema.d.ts.map +1 -0
- package/dist/backend/config/adapters/zod-schema.js +35 -0
- package/dist/backend/config/adapters/zod-schema.js.map +1 -0
- package/dist/backend/config/core/env-loader.d.ts +47 -0
- package/dist/backend/config/core/env-loader.d.ts.map +1 -0
- package/dist/backend/config/core/env-loader.js +155 -0
- package/dist/backend/config/core/env-loader.js.map +1 -0
- package/dist/backend/config/core/errors.d.ts +34 -0
- package/dist/backend/config/core/errors.d.ts.map +1 -0
- package/dist/backend/config/core/errors.js +49 -0
- package/dist/backend/config/core/errors.js.map +1 -0
- package/dist/backend/config/core/freeze.d.ts +7 -0
- package/dist/backend/config/core/freeze.d.ts.map +1 -0
- package/dist/backend/config/core/freeze.js +20 -0
- package/dist/backend/config/core/freeze.js.map +1 -0
- package/dist/backend/config/core/load-config.d.ts +43 -0
- package/dist/backend/config/core/load-config.d.ts.map +1 -0
- package/dist/backend/config/core/load-config.js +74 -0
- package/dist/backend/config/core/load-config.js.map +1 -0
- package/dist/backend/config/core/merge.d.ts +19 -0
- package/dist/backend/config/core/merge.d.ts.map +1 -0
- package/dist/backend/config/core/merge.js +31 -0
- package/dist/backend/config/core/merge.js.map +1 -0
- package/dist/backend/config/core/ports.d.ts +58 -0
- package/dist/backend/config/core/ports.d.ts.map +1 -0
- package/dist/backend/config/core/ports.js +2 -0
- package/dist/backend/config/core/ports.js.map +1 -0
- package/dist/backend/config/core/secret-resolver.d.ts +16 -0
- package/dist/backend/config/core/secret-resolver.d.ts.map +1 -0
- package/dist/backend/config/core/secret-resolver.js +73 -0
- package/dist/backend/config/core/secret-resolver.js.map +1 -0
- package/dist/backend/config/core/secret.d.ts +21 -0
- package/dist/backend/config/core/secret.d.ts.map +1 -0
- package/dist/backend/config/core/secret.js +40 -0
- package/dist/backend/config/core/secret.js.map +1 -0
- package/dist/backend/config/index.d.ts +16 -0
- package/dist/backend/config/index.d.ts.map +1 -0
- package/dist/backend/config/index.js +23 -0
- package/dist/backend/config/index.js.map +1 -0
- package/dist/backend/config/nestjs/config-kit.module.d.ts +37 -0
- package/dist/backend/config/nestjs/config-kit.module.d.ts.map +1 -0
- package/dist/backend/config/nestjs/config-kit.module.js +24 -0
- package/dist/backend/config/nestjs/config-kit.module.js.map +1 -0
- package/dist/backend/http/adapters/zod-schema.d.ts +11 -0
- package/dist/backend/http/adapters/zod-schema.d.ts.map +1 -0
- package/dist/backend/http/adapters/zod-schema.js +74 -0
- package/dist/backend/http/adapters/zod-schema.js.map +1 -0
- package/dist/backend/http/core/context.d.ts +25 -0
- package/dist/backend/http/core/context.d.ts.map +1 -0
- package/dist/backend/http/core/context.js +60 -0
- package/dist/backend/http/core/context.js.map +1 -0
- package/dist/backend/http/core/errors.d.ts +41 -0
- package/dist/backend/http/core/errors.d.ts.map +1 -0
- package/dist/backend/http/core/errors.js +99 -0
- package/dist/backend/http/core/errors.js.map +1 -0
- package/dist/backend/http/core/kernel.d.ts +54 -0
- package/dist/backend/http/core/kernel.d.ts.map +1 -0
- package/dist/backend/http/core/kernel.js +122 -0
- package/dist/backend/http/core/kernel.js.map +1 -0
- package/dist/backend/http/core/openapi.d.ts +37 -0
- package/dist/backend/http/core/openapi.d.ts.map +1 -0
- package/dist/backend/http/core/openapi.js +99 -0
- package/dist/backend/http/core/openapi.js.map +1 -0
- package/dist/backend/http/core/pagination.d.ts +17 -0
- package/dist/backend/http/core/pagination.d.ts.map +1 -0
- package/dist/backend/http/core/pagination.js +108 -0
- package/dist/backend/http/core/pagination.js.map +1 -0
- package/dist/backend/http/core/ports.d.ts +106 -0
- package/dist/backend/http/core/ports.d.ts.map +1 -0
- package/dist/backend/http/core/ports.js +6 -0
- package/dist/backend/http/core/ports.js.map +1 -0
- package/dist/backend/http/core/redaction.d.ts +8 -0
- package/dist/backend/http/core/redaction.d.ts.map +1 -0
- package/dist/backend/http/core/redaction.js +45 -0
- package/dist/backend/http/core/redaction.js.map +1 -0
- package/dist/backend/http/core/router.d.ts +37 -0
- package/dist/backend/http/core/router.d.ts.map +1 -0
- package/dist/backend/http/core/router.js +120 -0
- package/dist/backend/http/core/router.js.map +1 -0
- package/dist/backend/http/core/security.d.ts +43 -0
- package/dist/backend/http/core/security.d.ts.map +1 -0
- package/dist/backend/http/core/security.js +66 -0
- package/dist/backend/http/core/security.js.map +1 -0
- package/dist/backend/http/core/validation.d.ts +9 -0
- package/dist/backend/http/core/validation.d.ts.map +1 -0
- package/dist/backend/http/core/validation.js +36 -0
- package/dist/backend/http/core/validation.js.map +1 -0
- package/dist/backend/http/index.d.ts +20 -0
- package/dist/backend/http/index.d.ts.map +1 -0
- package/dist/backend/http/index.js +29 -0
- package/dist/backend/http/index.js.map +1 -0
- package/dist/backend/http/nestjs/http-kernel.module.d.ts +37 -0
- package/dist/backend/http/nestjs/http-kernel.module.d.ts.map +1 -0
- package/dist/backend/http/nestjs/http-kernel.module.js +77 -0
- package/dist/backend/http/nestjs/http-kernel.module.js.map +1 -0
- package/dist/backend/http/nodejs/http-adapter.d.ts +11 -0
- package/dist/backend/http/nodejs/http-adapter.d.ts.map +1 -0
- package/dist/backend/http/nodejs/http-adapter.js +60 -0
- package/dist/backend/http/nodejs/http-adapter.js.map +1 -0
- package/dist/backend/i18n/core/catalog.d.ts +23 -0
- package/dist/backend/i18n/core/catalog.d.ts.map +1 -0
- package/dist/backend/i18n/core/catalog.js +31 -0
- package/dist/backend/i18n/core/catalog.js.map +1 -0
- package/dist/backend/i18n/core/errors.d.ts +14 -0
- package/dist/backend/i18n/core/errors.d.ts.map +1 -0
- package/dist/backend/i18n/core/errors.js +22 -0
- package/dist/backend/i18n/core/errors.js.map +1 -0
- package/dist/backend/i18n/core/i18n.d.ts +20 -0
- package/dist/backend/i18n/core/i18n.d.ts.map +1 -0
- package/dist/backend/i18n/core/i18n.js +48 -0
- package/dist/backend/i18n/core/i18n.js.map +1 -0
- package/dist/backend/i18n/core/message.d.ts +8 -0
- package/dist/backend/i18n/core/message.d.ts.map +1 -0
- package/dist/backend/i18n/core/message.js +38 -0
- package/dist/backend/i18n/core/message.js.map +1 -0
- package/dist/backend/i18n/core/negotiate.d.ts +13 -0
- package/dist/backend/i18n/core/negotiate.d.ts.map +1 -0
- package/dist/backend/i18n/core/negotiate.js +46 -0
- package/dist/backend/i18n/core/negotiate.js.map +1 -0
- package/dist/backend/i18n/core/ports.d.ts +35 -0
- package/dist/backend/i18n/core/ports.d.ts.map +1 -0
- package/dist/backend/i18n/core/ports.js +6 -0
- package/dist/backend/i18n/core/ports.js.map +1 -0
- package/dist/backend/i18n/index.d.ts +14 -0
- package/dist/backend/i18n/index.d.ts.map +1 -0
- package/dist/backend/i18n/index.js +18 -0
- package/dist/backend/i18n/index.js.map +1 -0
- package/dist/backend/i18n/nestjs/i18n.module.d.ts +16 -0
- package/dist/backend/i18n/nestjs/i18n.module.d.ts.map +1 -0
- package/dist/backend/i18n/nestjs/i18n.module.js +17 -0
- package/dist/backend/i18n/nestjs/i18n.module.js.map +1 -0
- package/dist/backend/index.d.ts +31 -0
- package/dist/backend/index.d.ts.map +1 -0
- package/dist/backend/index.js +31 -0
- package/dist/backend/index.js.map +1 -0
- package/dist/backend/jobs/adapters/in-memory-idempotency.d.ts +9 -0
- package/dist/backend/jobs/adapters/in-memory-idempotency.d.ts.map +1 -0
- package/dist/backend/jobs/adapters/in-memory-idempotency.js +34 -0
- package/dist/backend/jobs/adapters/in-memory-idempotency.js.map +1 -0
- package/dist/backend/jobs/adapters/in-memory-queue-store.d.ts +7 -0
- package/dist/backend/jobs/adapters/in-memory-queue-store.d.ts.map +1 -0
- package/dist/backend/jobs/adapters/in-memory-queue-store.js +70 -0
- package/dist/backend/jobs/adapters/in-memory-queue-store.js.map +1 -0
- package/dist/backend/jobs/adapters/redis-queue-store.d.ts +28 -0
- package/dist/backend/jobs/adapters/redis-queue-store.d.ts.map +1 -0
- package/dist/backend/jobs/adapters/redis-queue-store.js +86 -0
- package/dist/backend/jobs/adapters/redis-queue-store.js.map +1 -0
- package/dist/backend/jobs/core/backoff.d.ts +15 -0
- package/dist/backend/jobs/core/backoff.d.ts.map +1 -0
- package/dist/backend/jobs/core/backoff.js +20 -0
- package/dist/backend/jobs/core/backoff.js.map +1 -0
- package/dist/backend/jobs/core/cron.d.ts +13 -0
- package/dist/backend/jobs/core/cron.d.ts.map +1 -0
- package/dist/backend/jobs/core/cron.js +101 -0
- package/dist/backend/jobs/core/cron.js.map +1 -0
- package/dist/backend/jobs/core/errors.d.ts +18 -0
- package/dist/backend/jobs/core/errors.d.ts.map +1 -0
- package/dist/backend/jobs/core/errors.js +30 -0
- package/dist/backend/jobs/core/errors.js.map +1 -0
- package/dist/backend/jobs/core/ports.d.ts +80 -0
- package/dist/backend/jobs/core/ports.d.ts.map +1 -0
- package/dist/backend/jobs/core/ports.js +6 -0
- package/dist/backend/jobs/core/ports.js.map +1 -0
- package/dist/backend/jobs/core/queue.d.ts +16 -0
- package/dist/backend/jobs/core/queue.d.ts.map +1 -0
- package/dist/backend/jobs/core/queue.js +29 -0
- package/dist/backend/jobs/core/queue.js.map +1 -0
- package/dist/backend/jobs/core/registry.d.ts +4 -0
- package/dist/backend/jobs/core/registry.d.ts.map +1 -0
- package/dist/backend/jobs/core/registry.js +11 -0
- package/dist/backend/jobs/core/registry.js.map +1 -0
- package/dist/backend/jobs/core/scheduler.d.ts +30 -0
- package/dist/backend/jobs/core/scheduler.d.ts.map +1 -0
- package/dist/backend/jobs/core/scheduler.js +53 -0
- package/dist/backend/jobs/core/scheduler.js.map +1 -0
- package/dist/backend/jobs/core/serializer.d.ts +3 -0
- package/dist/backend/jobs/core/serializer.d.ts.map +1 -0
- package/dist/backend/jobs/core/serializer.js +5 -0
- package/dist/backend/jobs/core/serializer.js.map +1 -0
- package/dist/backend/jobs/core/worker.d.ts +28 -0
- package/dist/backend/jobs/core/worker.d.ts.map +1 -0
- package/dist/backend/jobs/core/worker.js +118 -0
- package/dist/backend/jobs/core/worker.js.map +1 -0
- package/dist/backend/jobs/index.d.ts +18 -0
- package/dist/backend/jobs/index.d.ts.map +1 -0
- package/dist/backend/jobs/index.js +23 -0
- package/dist/backend/jobs/index.js.map +1 -0
- package/dist/backend/mailer/adapters/dev-inbox.d.ts +17 -0
- package/dist/backend/mailer/adapters/dev-inbox.d.ts.map +1 -0
- package/dist/backend/mailer/adapters/dev-inbox.js +29 -0
- package/dist/backend/mailer/adapters/dev-inbox.js.map +1 -0
- package/dist/backend/mailer/adapters/i18n-renderer.d.ts +13 -0
- package/dist/backend/mailer/adapters/i18n-renderer.d.ts.map +1 -0
- package/dist/backend/mailer/adapters/i18n-renderer.js +27 -0
- package/dist/backend/mailer/adapters/i18n-renderer.js.map +1 -0
- package/dist/backend/mailer/adapters/in-memory-templates.d.ts +6 -0
- package/dist/backend/mailer/adapters/in-memory-templates.d.ts.map +1 -0
- package/dist/backend/mailer/adapters/in-memory-templates.js +6 -0
- package/dist/backend/mailer/adapters/in-memory-templates.js.map +1 -0
- package/dist/backend/mailer/adapters/resend.d.ts +12 -0
- package/dist/backend/mailer/adapters/resend.d.ts.map +1 -0
- package/dist/backend/mailer/adapters/resend.js +47 -0
- package/dist/backend/mailer/adapters/resend.js.map +1 -0
- package/dist/backend/mailer/adapters/transports.d.ts +19 -0
- package/dist/backend/mailer/adapters/transports.d.ts.map +1 -0
- package/dist/backend/mailer/adapters/transports.js +38 -0
- package/dist/backend/mailer/adapters/transports.js.map +1 -0
- package/dist/backend/mailer/core/errors.d.ts +23 -0
- package/dist/backend/mailer/core/errors.d.ts.map +1 -0
- package/dist/backend/mailer/core/errors.js +40 -0
- package/dist/backend/mailer/core/errors.js.map +1 -0
- package/dist/backend/mailer/core/failover.d.ts +3 -0
- package/dist/backend/mailer/core/failover.d.ts.map +1 -0
- package/dist/backend/mailer/core/failover.js +30 -0
- package/dist/backend/mailer/core/failover.js.map +1 -0
- package/dist/backend/mailer/core/mailer.d.ts +25 -0
- package/dist/backend/mailer/core/mailer.d.ts.map +1 -0
- package/dist/backend/mailer/core/mailer.js +61 -0
- package/dist/backend/mailer/core/mailer.js.map +1 -0
- package/dist/backend/mailer/core/ports.d.ts +54 -0
- package/dist/backend/mailer/core/ports.d.ts.map +1 -0
- package/dist/backend/mailer/core/ports.js +6 -0
- package/dist/backend/mailer/core/ports.js.map +1 -0
- package/dist/backend/mailer/core/render.d.ts +4 -0
- package/dist/backend/mailer/core/render.d.ts.map +1 -0
- package/dist/backend/mailer/core/render.js +29 -0
- package/dist/backend/mailer/core/render.js.map +1 -0
- package/dist/backend/mailer/index.d.ts +18 -0
- package/dist/backend/mailer/index.d.ts.map +1 -0
- package/dist/backend/mailer/index.js +22 -0
- package/dist/backend/mailer/index.js.map +1 -0
- package/dist/backend/mailer/nestjs/mailer.module.d.ts +17 -0
- package/dist/backend/mailer/nestjs/mailer.module.d.ts.map +1 -0
- package/dist/backend/mailer/nestjs/mailer.module.js +15 -0
- package/dist/backend/mailer/nestjs/mailer.module.js.map +1 -0
- package/dist/backend/observability/core/context.d.ts +9 -0
- package/dist/backend/observability/core/context.d.ts.map +1 -0
- package/dist/backend/observability/core/context.js +15 -0
- package/dist/backend/observability/core/context.js.map +1 -0
- package/dist/backend/observability/core/health.d.ts +40 -0
- package/dist/backend/observability/core/health.d.ts.map +1 -0
- package/dist/backend/observability/core/health.js +51 -0
- package/dist/backend/observability/core/health.js.map +1 -0
- package/dist/backend/observability/core/logger.d.ts +22 -0
- package/dist/backend/observability/core/logger.d.ts.map +1 -0
- package/dist/backend/observability/core/logger.js +45 -0
- package/dist/backend/observability/core/logger.js.map +1 -0
- package/dist/backend/observability/core/metrics.d.ts +63 -0
- package/dist/backend/observability/core/metrics.d.ts.map +1 -0
- package/dist/backend/observability/core/metrics.js +172 -0
- package/dist/backend/observability/core/metrics.js.map +1 -0
- package/dist/backend/observability/core/redaction.d.ts +10 -0
- package/dist/backend/observability/core/redaction.d.ts.map +1 -0
- package/dist/backend/observability/core/redaction.js +48 -0
- package/dist/backend/observability/core/redaction.js.map +1 -0
- package/dist/backend/observability/core/tracing.d.ts +52 -0
- package/dist/backend/observability/core/tracing.d.ts.map +1 -0
- package/dist/backend/observability/core/tracing.js +88 -0
- package/dist/backend/observability/core/tracing.js.map +1 -0
- package/dist/backend/observability/index.d.ts +14 -0
- package/dist/backend/observability/index.d.ts.map +1 -0
- package/dist/backend/observability/index.js +19 -0
- package/dist/backend/observability/index.js.map +1 -0
- package/dist/backend/observability/nestjs/observability.module.d.ts +35 -0
- package/dist/backend/observability/nestjs/observability.module.d.ts.map +1 -0
- package/dist/backend/observability/nestjs/observability.module.js +87 -0
- package/dist/backend/observability/nestjs/observability.module.js.map +1 -0
- package/dist/backend/persistence/adapters/in-memory-driver.d.ts +18 -0
- package/dist/backend/persistence/adapters/in-memory-driver.d.ts.map +1 -0
- package/dist/backend/persistence/adapters/in-memory-driver.js +229 -0
- package/dist/backend/persistence/adapters/in-memory-driver.js.map +1 -0
- package/dist/backend/persistence/adapters/pg-driver.d.ts +21 -0
- package/dist/backend/persistence/adapters/pg-driver.d.ts.map +1 -0
- package/dist/backend/persistence/adapters/pg-driver.js +42 -0
- package/dist/backend/persistence/adapters/pg-driver.js.map +1 -0
- package/dist/backend/persistence/adapters/testcontainer-harness.d.ts +37 -0
- package/dist/backend/persistence/adapters/testcontainer-harness.d.ts.map +1 -0
- package/dist/backend/persistence/adapters/testcontainer-harness.js +79 -0
- package/dist/backend/persistence/adapters/testcontainer-harness.js.map +1 -0
- package/dist/backend/persistence/core/errors.d.ts +36 -0
- package/dist/backend/persistence/core/errors.d.ts.map +1 -0
- package/dist/backend/persistence/core/errors.js +58 -0
- package/dist/backend/persistence/core/errors.js.map +1 -0
- package/dist/backend/persistence/core/migrations.d.ts +16 -0
- package/dist/backend/persistence/core/migrations.d.ts.map +1 -0
- package/dist/backend/persistence/core/migrations.js +95 -0
- package/dist/backend/persistence/core/migrations.js.map +1 -0
- package/dist/backend/persistence/core/pool.d.ts +4 -0
- package/dist/backend/persistence/core/pool.d.ts.map +1 -0
- package/dist/backend/persistence/core/pool.js +180 -0
- package/dist/backend/persistence/core/pool.js.map +1 -0
- package/dist/backend/persistence/core/ports.d.ts +91 -0
- package/dist/backend/persistence/core/ports.d.ts.map +1 -0
- package/dist/backend/persistence/core/ports.js +6 -0
- package/dist/backend/persistence/core/ports.js.map +1 -0
- package/dist/backend/persistence/core/repository.d.ts +18 -0
- package/dist/backend/persistence/core/repository.d.ts.map +1 -0
- package/dist/backend/persistence/core/repository.js +113 -0
- package/dist/backend/persistence/core/repository.js.map +1 -0
- package/dist/backend/persistence/core/sql.d.ts +13 -0
- package/dist/backend/persistence/core/sql.d.ts.map +1 -0
- package/dist/backend/persistence/core/sql.js +35 -0
- package/dist/backend/persistence/core/sql.js.map +1 -0
- package/dist/backend/persistence/index.d.ts +14 -0
- package/dist/backend/persistence/index.d.ts.map +1 -0
- package/dist/backend/persistence/index.js +22 -0
- package/dist/backend/persistence/index.js.map +1 -0
- package/dist/backend/persistence/pg.d.ts +7 -0
- package/dist/backend/persistence/pg.d.ts.map +1 -0
- package/dist/backend/persistence/pg.js +7 -0
- package/dist/backend/persistence/pg.js.map +1 -0
- package/dist/backend/privacy/adapters/audit-sink.d.ts +19 -0
- package/dist/backend/privacy/adapters/audit-sink.d.ts.map +1 -0
- package/dist/backend/privacy/adapters/audit-sink.js +13 -0
- package/dist/backend/privacy/adapters/audit-sink.js.map +1 -0
- package/dist/backend/privacy/adapters/in-memory-consent-store.d.ts +7 -0
- package/dist/backend/privacy/adapters/in-memory-consent-store.d.ts.map +1 -0
- package/dist/backend/privacy/adapters/in-memory-consent-store.js +18 -0
- package/dist/backend/privacy/adapters/in-memory-consent-store.js.map +1 -0
- package/dist/backend/privacy/adapters/pg-consent-store.d.ts +26 -0
- package/dist/backend/privacy/adapters/pg-consent-store.d.ts.map +1 -0
- package/dist/backend/privacy/adapters/pg-consent-store.js +43 -0
- package/dist/backend/privacy/adapters/pg-consent-store.js.map +1 -0
- package/dist/backend/privacy/core/consent.d.ts +35 -0
- package/dist/backend/privacy/core/consent.d.ts.map +1 -0
- package/dist/backend/privacy/core/consent.js +49 -0
- package/dist/backend/privacy/core/consent.js.map +1 -0
- package/dist/backend/privacy/core/erasure.d.ts +22 -0
- package/dist/backend/privacy/core/erasure.d.ts.map +1 -0
- package/dist/backend/privacy/core/erasure.js +35 -0
- package/dist/backend/privacy/core/erasure.js.map +1 -0
- package/dist/backend/privacy/core/errors.d.ts +18 -0
- package/dist/backend/privacy/core/errors.d.ts.map +1 -0
- package/dist/backend/privacy/core/errors.js +30 -0
- package/dist/backend/privacy/core/errors.js.map +1 -0
- package/dist/backend/privacy/core/export.d.ts +20 -0
- package/dist/backend/privacy/core/export.d.ts.map +1 -0
- package/dist/backend/privacy/core/export.js +30 -0
- package/dist/backend/privacy/core/export.js.map +1 -0
- package/dist/backend/privacy/core/ports.d.ts +48 -0
- package/dist/backend/privacy/core/ports.d.ts.map +1 -0
- package/dist/backend/privacy/core/ports.js +6 -0
- package/dist/backend/privacy/core/ports.js.map +1 -0
- package/dist/backend/privacy/core/registry.d.ts +17 -0
- package/dist/backend/privacy/core/registry.d.ts.map +1 -0
- package/dist/backend/privacy/core/registry.js +31 -0
- package/dist/backend/privacy/core/registry.js.map +1 -0
- package/dist/backend/privacy/index.d.ts +16 -0
- package/dist/backend/privacy/index.d.ts.map +1 -0
- package/dist/backend/privacy/index.js +21 -0
- package/dist/backend/privacy/index.js.map +1 -0
- package/dist/backend/rate-limit/adapters/in-memory-store.d.ts +7 -0
- package/dist/backend/rate-limit/adapters/in-memory-store.d.ts.map +1 -0
- package/dist/backend/rate-limit/adapters/in-memory-store.js +50 -0
- package/dist/backend/rate-limit/adapters/in-memory-store.js.map +1 -0
- package/dist/backend/rate-limit/adapters/redis-store.d.ts +11 -0
- package/dist/backend/rate-limit/adapters/redis-store.d.ts.map +1 -0
- package/dist/backend/rate-limit/adapters/redis-store.js +93 -0
- package/dist/backend/rate-limit/adapters/redis-store.js.map +1 -0
- package/dist/backend/rate-limit/core/enforcer.d.ts +23 -0
- package/dist/backend/rate-limit/core/enforcer.d.ts.map +1 -0
- package/dist/backend/rate-limit/core/enforcer.js +27 -0
- package/dist/backend/rate-limit/core/enforcer.js.map +1 -0
- package/dist/backend/rate-limit/core/errors.d.ts +19 -0
- package/dist/backend/rate-limit/core/errors.d.ts.map +1 -0
- package/dist/backend/rate-limit/core/errors.js +32 -0
- package/dist/backend/rate-limit/core/errors.js.map +1 -0
- package/dist/backend/rate-limit/core/ports.d.ts +50 -0
- package/dist/backend/rate-limit/core/ports.d.ts.map +1 -0
- package/dist/backend/rate-limit/core/ports.js +6 -0
- package/dist/backend/rate-limit/core/ports.js.map +1 -0
- package/dist/backend/rate-limit/core/sliding-window.d.ts +9 -0
- package/dist/backend/rate-limit/core/sliding-window.d.ts.map +1 -0
- package/dist/backend/rate-limit/core/sliding-window.js +24 -0
- package/dist/backend/rate-limit/core/sliding-window.js.map +1 -0
- package/dist/backend/rate-limit/core/token-bucket.d.ts +9 -0
- package/dist/backend/rate-limit/core/token-bucket.d.ts.map +1 -0
- package/dist/backend/rate-limit/core/token-bucket.js +24 -0
- package/dist/backend/rate-limit/core/token-bucket.js.map +1 -0
- package/dist/backend/rate-limit/index.d.ts +15 -0
- package/dist/backend/rate-limit/index.d.ts.map +1 -0
- package/dist/backend/rate-limit/index.js +19 -0
- package/dist/backend/rate-limit/index.js.map +1 -0
- package/dist/backend/rate-limit/nestjs/rate-limit.module.d.ts +25 -0
- package/dist/backend/rate-limit/nestjs/rate-limit.module.d.ts.map +1 -0
- package/dist/backend/rate-limit/nestjs/rate-limit.module.js +63 -0
- package/dist/backend/rate-limit/nestjs/rate-limit.module.js.map +1 -0
- package/dist/backend/rate-limit/nodejs/middleware.d.ts +16 -0
- package/dist/backend/rate-limit/nodejs/middleware.d.ts.map +1 -0
- package/dist/backend/rate-limit/nodejs/middleware.js +26 -0
- package/dist/backend/rate-limit/nodejs/middleware.js.map +1 -0
- package/dist/backend/test-kit/adapters/infra-bootstrap.d.ts +40 -0
- package/dist/backend/test-kit/adapters/infra-bootstrap.d.ts.map +1 -0
- package/dist/backend/test-kit/adapters/infra-bootstrap.js +64 -0
- package/dist/backend/test-kit/adapters/infra-bootstrap.js.map +1 -0
- package/dist/backend/test-kit/core/contract.d.ts +49 -0
- package/dist/backend/test-kit/core/contract.d.ts.map +1 -0
- package/dist/backend/test-kit/core/contract.js +52 -0
- package/dist/backend/test-kit/core/contract.js.map +1 -0
- package/dist/backend/test-kit/core/errors.d.ts +12 -0
- package/dist/backend/test-kit/core/errors.d.ts.map +1 -0
- package/dist/backend/test-kit/core/errors.js +19 -0
- package/dist/backend/test-kit/core/errors.js.map +1 -0
- package/dist/backend/test-kit/core/factories.d.ts +24 -0
- package/dist/backend/test-kit/core/factories.d.ts.map +1 -0
- package/dist/backend/test-kit/core/factories.js +57 -0
- package/dist/backend/test-kit/core/factories.js.map +1 -0
- package/dist/backend/test-kit/core/http-client.d.ts +46 -0
- package/dist/backend/test-kit/core/http-client.d.ts.map +1 -0
- package/dist/backend/test-kit/core/http-client.js +63 -0
- package/dist/backend/test-kit/core/http-client.js.map +1 -0
- package/dist/backend/test-kit/index.d.ts +10 -0
- package/dist/backend/test-kit/index.d.ts.map +1 -0
- package/dist/backend/test-kit/index.js +14 -0
- package/dist/backend/test-kit/index.js.map +1 -0
- package/dist/backend/test-kit/infra.d.ts +6 -0
- package/dist/backend/test-kit/infra.d.ts.map +1 -0
- package/dist/backend/test-kit/infra.js +6 -0
- package/dist/backend/test-kit/infra.js.map +1 -0
- package/dist/frontend/access-control/core/permissions.d.ts +44 -0
- package/dist/frontend/access-control/core/permissions.d.ts.map +1 -0
- package/dist/frontend/access-control/core/permissions.js +61 -0
- package/dist/frontend/access-control/core/permissions.js.map +1 -0
- package/dist/frontend/access-control/core/ports.d.ts +31 -0
- package/dist/frontend/access-control/core/ports.d.ts.map +1 -0
- package/dist/frontend/access-control/core/ports.js +9 -0
- package/dist/frontend/access-control/core/ports.js.map +1 -0
- package/dist/frontend/access-control/index.d.ts +10 -0
- package/dist/frontend/access-control/index.d.ts.map +1 -0
- package/dist/frontend/access-control/index.js +2 -0
- package/dist/frontend/access-control/index.js.map +1 -0
- package/dist/frontend/access-control/nuxt/module.d.ts +17 -0
- package/dist/frontend/access-control/nuxt/module.d.ts.map +1 -0
- package/dist/frontend/access-control/nuxt/module.js +30 -0
- package/dist/frontend/access-control/nuxt/module.js.map +1 -0
- package/dist/frontend/access-control/vue/can-component.d.ts +62 -0
- package/dist/frontend/access-control/vue/can-component.d.ts.map +1 -0
- package/dist/frontend/access-control/vue/can-component.js +59 -0
- package/dist/frontend/access-control/vue/can-component.js.map +1 -0
- package/dist/frontend/access-control/vue/can-directive.d.ts +28 -0
- package/dist/frontend/access-control/vue/can-directive.d.ts.map +1 -0
- package/dist/frontend/access-control/vue/can-directive.js +71 -0
- package/dist/frontend/access-control/vue/can-directive.js.map +1 -0
- package/dist/frontend/access-control/vue/index.d.ts +12 -0
- package/dist/frontend/access-control/vue/index.d.ts.map +1 -0
- package/dist/frontend/access-control/vue/index.js +11 -0
- package/dist/frontend/access-control/vue/index.js.map +1 -0
- package/dist/frontend/access-control/vue/keys.d.ts +9 -0
- package/dist/frontend/access-control/vue/keys.d.ts.map +1 -0
- package/dist/frontend/access-control/vue/keys.js +7 -0
- package/dist/frontend/access-control/vue/keys.js.map +1 -0
- package/dist/frontend/access-control/vue/provide.d.ts +12 -0
- package/dist/frontend/access-control/vue/provide.d.ts.map +1 -0
- package/dist/frontend/access-control/vue/provide.js +20 -0
- package/dist/frontend/access-control/vue/provide.js.map +1 -0
- package/dist/frontend/access-control/vue/route-guard.d.ts +57 -0
- package/dist/frontend/access-control/vue/route-guard.d.ts.map +1 -0
- package/dist/frontend/access-control/vue/route-guard.js +47 -0
- package/dist/frontend/access-control/vue/route-guard.js.map +1 -0
- package/dist/frontend/account/adapters/clock.d.ts +7 -0
- package/dist/frontend/account/adapters/clock.d.ts.map +1 -0
- package/dist/frontend/account/adapters/clock.js +17 -0
- package/dist/frontend/account/adapters/clock.js.map +1 -0
- package/dist/frontend/account/core/errors.d.ts +52 -0
- package/dist/frontend/account/core/errors.d.ts.map +1 -0
- package/dist/frontend/account/core/errors.js +46 -0
- package/dist/frontend/account/core/errors.js.map +1 -0
- package/dist/frontend/account/core/flow-state.d.ts +22 -0
- package/dist/frontend/account/core/flow-state.d.ts.map +1 -0
- package/dist/frontend/account/core/flow-state.js +17 -0
- package/dist/frontend/account/core/flow-state.js.map +1 -0
- package/dist/frontend/account/core/ports.d.ts +64 -0
- package/dist/frontend/account/core/ports.d.ts.map +1 -0
- package/dist/frontend/account/core/ports.js +9 -0
- package/dist/frontend/account/core/ports.js.map +1 -0
- package/dist/frontend/account/core/privacy-flow.d.ts +42 -0
- package/dist/frontend/account/core/privacy-flow.d.ts.map +1 -0
- package/dist/frontend/account/core/privacy-flow.js +51 -0
- package/dist/frontend/account/core/privacy-flow.js.map +1 -0
- package/dist/frontend/account/core/profile-flow.d.ts +23 -0
- package/dist/frontend/account/core/profile-flow.d.ts.map +1 -0
- package/dist/frontend/account/core/profile-flow.js +40 -0
- package/dist/frontend/account/core/profile-flow.js.map +1 -0
- package/dist/frontend/account/index.d.ts +18 -0
- package/dist/frontend/account/index.d.ts.map +1 -0
- package/dist/frontend/account/index.js +6 -0
- package/dist/frontend/account/index.js.map +1 -0
- package/dist/frontend/account/nuxt/module.d.ts +19 -0
- package/dist/frontend/account/nuxt/module.d.ts.map +1 -0
- package/dist/frontend/account/nuxt/module.js +43 -0
- package/dist/frontend/account/nuxt/module.js.map +1 -0
- package/dist/frontend/account/vue/index.d.ts +3 -0
- package/dist/frontend/account/vue/index.d.ts.map +1 -0
- package/dist/frontend/account/vue/index.js +2 -0
- package/dist/frontend/account/vue/index.js.map +1 -0
- package/dist/frontend/account/vue/provide.d.ts +83 -0
- package/dist/frontend/account/vue/provide.d.ts.map +1 -0
- package/dist/frontend/account/vue/provide.js +134 -0
- package/dist/frontend/account/vue/provide.js.map +1 -0
- package/dist/frontend/admin/core/access.d.ts +25 -0
- package/dist/frontend/admin/core/access.d.ts.map +1 -0
- package/dist/frontend/admin/core/access.js +42 -0
- package/dist/frontend/admin/core/access.js.map +1 -0
- package/dist/frontend/admin/core/crud.d.ts +38 -0
- package/dist/frontend/admin/core/crud.d.ts.map +1 -0
- package/dist/frontend/admin/core/crud.js +89 -0
- package/dist/frontend/admin/core/crud.js.map +1 -0
- package/dist/frontend/admin/core/errors.d.ts +15 -0
- package/dist/frontend/admin/core/errors.d.ts.map +1 -0
- package/dist/frontend/admin/core/errors.js +23 -0
- package/dist/frontend/admin/core/errors.js.map +1 -0
- package/dist/frontend/admin/core/ports.d.ts +71 -0
- package/dist/frontend/admin/core/ports.d.ts.map +1 -0
- package/dist/frontend/admin/core/ports.js +11 -0
- package/dist/frontend/admin/core/ports.js.map +1 -0
- package/dist/frontend/admin/core/resource.d.ts +26 -0
- package/dist/frontend/admin/core/resource.d.ts.map +1 -0
- package/dist/frontend/admin/core/resource.js +31 -0
- package/dist/frontend/admin/core/resource.js.map +1 -0
- package/dist/frontend/admin/core/table-model.d.ts +25 -0
- package/dist/frontend/admin/core/table-model.d.ts.map +1 -0
- package/dist/frontend/admin/core/table-model.js +90 -0
- package/dist/frontend/admin/core/table-model.js.map +1 -0
- package/dist/frontend/admin/index.d.ts +16 -0
- package/dist/frontend/admin/index.d.ts.map +1 -0
- package/dist/frontend/admin/index.js +6 -0
- package/dist/frontend/admin/index.js.map +1 -0
- package/dist/frontend/admin/nuxt/module.d.ts +16 -0
- package/dist/frontend/admin/nuxt/module.d.ts.map +1 -0
- package/dist/frontend/admin/nuxt/module.js +29 -0
- package/dist/frontend/admin/nuxt/module.js.map +1 -0
- package/dist/frontend/admin/vue/data-table.d.ts +64 -0
- package/dist/frontend/admin/vue/data-table.d.ts.map +1 -0
- package/dist/frontend/admin/vue/data-table.js +143 -0
- package/dist/frontend/admin/vue/data-table.js.map +1 -0
- package/dist/frontend/admin/vue/index.d.ts +13 -0
- package/dist/frontend/admin/vue/index.d.ts.map +1 -0
- package/dist/frontend/admin/vue/index.js +11 -0
- package/dist/frontend/admin/vue/index.js.map +1 -0
- package/dist/frontend/admin/vue/keys.d.ts +9 -0
- package/dist/frontend/admin/vue/keys.d.ts.map +1 -0
- package/dist/frontend/admin/vue/keys.js +7 -0
- package/dist/frontend/admin/vue/keys.js.map +1 -0
- package/dist/frontend/admin/vue/provide.d.ts +14 -0
- package/dist/frontend/admin/vue/provide.d.ts.map +1 -0
- package/dist/frontend/admin/vue/provide.js +24 -0
- package/dist/frontend/admin/vue/provide.js.map +1 -0
- package/dist/frontend/admin/vue/use-crud.d.ts +30 -0
- package/dist/frontend/admin/vue/use-crud.d.ts.map +1 -0
- package/dist/frontend/admin/vue/use-crud.js +28 -0
- package/dist/frontend/admin/vue/use-crud.js.map +1 -0
- package/dist/frontend/admin/vue/use-data-table.d.ts +46 -0
- package/dist/frontend/admin/vue/use-data-table.d.ts.map +1 -0
- package/dist/frontend/admin/vue/use-data-table.js +96 -0
- package/dist/frontend/admin/vue/use-data-table.js.map +1 -0
- package/dist/frontend/analytics/adapters/consent.d.ts +25 -0
- package/dist/frontend/analytics/adapters/consent.d.ts.map +1 -0
- package/dist/frontend/analytics/adapters/consent.js +59 -0
- package/dist/frontend/analytics/adapters/consent.js.map +1 -0
- package/dist/frontend/analytics/adapters/router-hooks.d.ts +22 -0
- package/dist/frontend/analytics/adapters/router-hooks.d.ts.map +1 -0
- package/dist/frontend/analytics/adapters/router-hooks.js +31 -0
- package/dist/frontend/analytics/adapters/router-hooks.js.map +1 -0
- package/dist/frontend/analytics/adapters/sinks.d.ts +14 -0
- package/dist/frontend/analytics/adapters/sinks.d.ts.map +1 -0
- package/dist/frontend/analytics/adapters/sinks.js +25 -0
- package/dist/frontend/analytics/adapters/sinks.js.map +1 -0
- package/dist/frontend/analytics/core/errors.d.ts +13 -0
- package/dist/frontend/analytics/core/errors.d.ts.map +1 -0
- package/dist/frontend/analytics/core/errors.js +19 -0
- package/dist/frontend/analytics/core/errors.js.map +1 -0
- package/dist/frontend/analytics/core/ports.d.ts +56 -0
- package/dist/frontend/analytics/core/ports.d.ts.map +1 -0
- package/dist/frontend/analytics/core/ports.js +8 -0
- package/dist/frontend/analytics/core/ports.js.map +1 -0
- package/dist/frontend/analytics/core/route-view-tracker.d.ts +24 -0
- package/dist/frontend/analytics/core/route-view-tracker.d.ts.map +1 -0
- package/dist/frontend/analytics/core/route-view-tracker.js +30 -0
- package/dist/frontend/analytics/core/route-view-tracker.js.map +1 -0
- package/dist/frontend/analytics/core/tracker.d.ts +37 -0
- package/dist/frontend/analytics/core/tracker.d.ts.map +1 -0
- package/dist/frontend/analytics/core/tracker.js +110 -0
- package/dist/frontend/analytics/core/tracker.js.map +1 -0
- package/dist/frontend/analytics/index.d.ts +19 -0
- package/dist/frontend/analytics/index.d.ts.map +1 -0
- package/dist/frontend/analytics/index.js +7 -0
- package/dist/frontend/analytics/index.js.map +1 -0
- package/dist/frontend/analytics/nuxt/module.d.ts +17 -0
- package/dist/frontend/analytics/nuxt/module.d.ts.map +1 -0
- package/dist/frontend/analytics/nuxt/module.js +38 -0
- package/dist/frontend/analytics/nuxt/module.js.map +1 -0
- package/dist/frontend/analytics/vue/index.d.ts +3 -0
- package/dist/frontend/analytics/vue/index.d.ts.map +1 -0
- package/dist/frontend/analytics/vue/index.js +2 -0
- package/dist/frontend/analytics/vue/index.js.map +1 -0
- package/dist/frontend/analytics/vue/provide.d.ts +18 -0
- package/dist/frontend/analytics/vue/provide.d.ts.map +1 -0
- package/dist/frontend/analytics/vue/provide.js +23 -0
- package/dist/frontend/analytics/vue/provide.js.map +1 -0
- package/dist/frontend/app-kernel/adapters/error-sinks.d.ts +12 -0
- package/dist/frontend/app-kernel/adapters/error-sinks.d.ts.map +1 -0
- package/dist/frontend/app-kernel/adapters/error-sinks.js +19 -0
- package/dist/frontend/app-kernel/adapters/error-sinks.js.map +1 -0
- package/dist/frontend/app-kernel/core/errors.d.ts +22 -0
- package/dist/frontend/app-kernel/core/errors.d.ts.map +1 -0
- package/dist/frontend/app-kernel/core/errors.js +37 -0
- package/dist/frontend/app-kernel/core/errors.js.map +1 -0
- package/dist/frontend/app-kernel/core/layout-registry.d.ts +29 -0
- package/dist/frontend/app-kernel/core/layout-registry.d.ts.map +1 -0
- package/dist/frontend/app-kernel/core/layout-registry.js +51 -0
- package/dist/frontend/app-kernel/core/layout-registry.js.map +1 -0
- package/dist/frontend/app-kernel/core/ports.d.ts +24 -0
- package/dist/frontend/app-kernel/core/ports.d.ts.map +1 -0
- package/dist/frontend/app-kernel/core/ports.js +2 -0
- package/dist/frontend/app-kernel/core/ports.js.map +1 -0
- package/dist/frontend/app-kernel/core/registry.d.ts +26 -0
- package/dist/frontend/app-kernel/core/registry.d.ts.map +1 -0
- package/dist/frontend/app-kernel/core/registry.js +41 -0
- package/dist/frontend/app-kernel/core/registry.js.map +1 -0
- package/dist/frontend/app-kernel/index.d.ts +15 -0
- package/dist/frontend/app-kernel/index.d.ts.map +1 -0
- package/dist/frontend/app-kernel/index.js +11 -0
- package/dist/frontend/app-kernel/index.js.map +1 -0
- package/dist/frontend/app-kernel/nuxt/module.d.ts +15 -0
- package/dist/frontend/app-kernel/nuxt/module.d.ts.map +1 -0
- package/dist/frontend/app-kernel/nuxt/module.js +27 -0
- package/dist/frontend/app-kernel/nuxt/module.js.map +1 -0
- package/dist/frontend/app-kernel/vue/error-boundary.d.ts +39 -0
- package/dist/frontend/app-kernel/vue/error-boundary.d.ts.map +1 -0
- package/dist/frontend/app-kernel/vue/error-boundary.js +63 -0
- package/dist/frontend/app-kernel/vue/error-boundary.js.map +1 -0
- package/dist/frontend/app-kernel/vue/index.d.ts +10 -0
- package/dist/frontend/app-kernel/vue/index.d.ts.map +1 -0
- package/dist/frontend/app-kernel/vue/index.js +9 -0
- package/dist/frontend/app-kernel/vue/index.js.map +1 -0
- package/dist/frontend/app-kernel/vue/keys.d.ts +15 -0
- package/dist/frontend/app-kernel/vue/keys.d.ts.map +1 -0
- package/dist/frontend/app-kernel/vue/keys.js +12 -0
- package/dist/frontend/app-kernel/vue/keys.js.map +1 -0
- package/dist/frontend/app-kernel/vue/layout.d.ts +16 -0
- package/dist/frontend/app-kernel/vue/layout.d.ts.map +1 -0
- package/dist/frontend/app-kernel/vue/layout.js +26 -0
- package/dist/frontend/app-kernel/vue/layout.js.map +1 -0
- package/dist/frontend/app-kernel/vue/route-modules.d.ts +35 -0
- package/dist/frontend/app-kernel/vue/route-modules.d.ts.map +1 -0
- package/dist/frontend/app-kernel/vue/route-modules.js +0 -0
- package/dist/frontend/app-kernel/vue/route-modules.js.map +1 -0
- package/dist/frontend/auth/adapters/cookie-storage.d.ts +25 -0
- package/dist/frontend/auth/adapters/cookie-storage.d.ts.map +1 -0
- package/dist/frontend/auth/adapters/cookie-storage.js +25 -0
- package/dist/frontend/auth/adapters/cookie-storage.js.map +1 -0
- package/dist/frontend/auth/adapters/local-storage.d.ts +23 -0
- package/dist/frontend/auth/adapters/local-storage.d.ts.map +1 -0
- package/dist/frontend/auth/adapters/local-storage.js +25 -0
- package/dist/frontend/auth/adapters/local-storage.js.map +1 -0
- package/dist/frontend/auth/adapters/memory-storage.d.ts +8 -0
- package/dist/frontend/auth/adapters/memory-storage.d.ts.map +1 -0
- package/dist/frontend/auth/adapters/memory-storage.js +18 -0
- package/dist/frontend/auth/adapters/memory-storage.js.map +1 -0
- package/dist/frontend/auth/adapters/scheduler.d.ts +9 -0
- package/dist/frontend/auth/adapters/scheduler.d.ts.map +1 -0
- package/dist/frontend/auth/adapters/scheduler.js +19 -0
- package/dist/frontend/auth/adapters/scheduler.js.map +1 -0
- package/dist/frontend/auth/core/errors.d.ts +34 -0
- package/dist/frontend/auth/core/errors.d.ts.map +1 -0
- package/dist/frontend/auth/core/errors.js +33 -0
- package/dist/frontend/auth/core/errors.js.map +1 -0
- package/dist/frontend/auth/core/flows.d.ts +22 -0
- package/dist/frontend/auth/core/flows.d.ts.map +1 -0
- package/dist/frontend/auth/core/flows.js +46 -0
- package/dist/frontend/auth/core/flows.js.map +1 -0
- package/dist/frontend/auth/core/ports.d.ts +78 -0
- package/dist/frontend/auth/core/ports.d.ts.map +1 -0
- package/dist/frontend/auth/core/ports.js +8 -0
- package/dist/frontend/auth/core/ports.js.map +1 -0
- package/dist/frontend/auth/core/route-guards.d.ts +52 -0
- package/dist/frontend/auth/core/route-guards.d.ts.map +1 -0
- package/dist/frontend/auth/core/route-guards.js +32 -0
- package/dist/frontend/auth/core/route-guards.js.map +1 -0
- package/dist/frontend/auth/core/session-store.d.ts +49 -0
- package/dist/frontend/auth/core/session-store.d.ts.map +1 -0
- package/dist/frontend/auth/core/session-store.js +71 -0
- package/dist/frontend/auth/core/session-store.js.map +1 -0
- package/dist/frontend/auth/core/silent-refresh.d.ts +22 -0
- package/dist/frontend/auth/core/silent-refresh.d.ts.map +1 -0
- package/dist/frontend/auth/core/silent-refresh.js +68 -0
- package/dist/frontend/auth/core/silent-refresh.js.map +1 -0
- package/dist/frontend/auth/index.d.ts +25 -0
- package/dist/frontend/auth/index.d.ts.map +1 -0
- package/dist/frontend/auth/index.js +10 -0
- package/dist/frontend/auth/index.js.map +1 -0
- package/dist/frontend/auth/nuxt/module.d.ts +16 -0
- package/dist/frontend/auth/nuxt/module.d.ts.map +1 -0
- package/dist/frontend/auth/nuxt/module.js +38 -0
- package/dist/frontend/auth/nuxt/module.js.map +1 -0
- package/dist/frontend/auth/vue/index.d.ts +3 -0
- package/dist/frontend/auth/vue/index.d.ts.map +1 -0
- package/dist/frontend/auth/vue/index.js +2 -0
- package/dist/frontend/auth/vue/index.js.map +1 -0
- package/dist/frontend/auth/vue/provide.d.ts +51 -0
- package/dist/frontend/auth/vue/provide.d.ts.map +1 -0
- package/dist/frontend/auth/vue/provide.js +69 -0
- package/dist/frontend/auth/vue/provide.js.map +1 -0
- package/dist/frontend/config/adapters/reporters.d.ts +8 -0
- package/dist/frontend/config/adapters/reporters.d.ts.map +1 -0
- package/dist/frontend/config/adapters/reporters.js +20 -0
- package/dist/frontend/config/adapters/reporters.js.map +1 -0
- package/dist/frontend/config/adapters/zod-schema.d.ts +8 -0
- package/dist/frontend/config/adapters/zod-schema.d.ts.map +1 -0
- package/dist/frontend/config/adapters/zod-schema.js +20 -0
- package/dist/frontend/config/adapters/zod-schema.js.map +1 -0
- package/dist/frontend/config/core/errors.d.ts +18 -0
- package/dist/frontend/config/core/errors.d.ts.map +1 -0
- package/dist/frontend/config/core/errors.js +26 -0
- package/dist/frontend/config/core/errors.js.map +1 -0
- package/dist/frontend/config/core/feature-flags.d.ts +15 -0
- package/dist/frontend/config/core/feature-flags.d.ts.map +1 -0
- package/dist/frontend/config/core/feature-flags.js +23 -0
- package/dist/frontend/config/core/feature-flags.js.map +1 -0
- package/dist/frontend/config/core/load-config.d.ts +23 -0
- package/dist/frontend/config/core/load-config.d.ts.map +1 -0
- package/dist/frontend/config/core/load-config.js +28 -0
- package/dist/frontend/config/core/load-config.js.map +1 -0
- package/dist/frontend/config/core/ports.d.ts +35 -0
- package/dist/frontend/config/core/ports.d.ts.map +1 -0
- package/dist/frontend/config/core/ports.js +6 -0
- package/dist/frontend/config/core/ports.js.map +1 -0
- package/dist/frontend/config/core/public-config.d.ts +17 -0
- package/dist/frontend/config/core/public-config.d.ts.map +1 -0
- package/dist/frontend/config/core/public-config.js +31 -0
- package/dist/frontend/config/core/public-config.js.map +1 -0
- package/dist/frontend/config/index.d.ts +14 -0
- package/dist/frontend/config/index.d.ts.map +1 -0
- package/dist/frontend/config/index.js +7 -0
- package/dist/frontend/config/index.js.map +1 -0
- package/dist/frontend/config/nuxt/module.d.ts +15 -0
- package/dist/frontend/config/nuxt/module.d.ts.map +1 -0
- package/dist/frontend/config/nuxt/module.js +28 -0
- package/dist/frontend/config/nuxt/module.js.map +1 -0
- package/dist/frontend/config/vue/index.d.ts +2 -0
- package/dist/frontend/config/vue/index.d.ts.map +1 -0
- package/dist/frontend/config/vue/index.js +2 -0
- package/dist/frontend/config/vue/index.js.map +1 -0
- package/dist/frontend/config/vue/provide.d.ts +18 -0
- package/dist/frontend/config/vue/provide.d.ts.map +1 -0
- package/dist/frontend/config/vue/provide.js +33 -0
- package/dist/frontend/config/vue/provide.js.map +1 -0
- package/dist/frontend/data/adapters/clock.d.ts +7 -0
- package/dist/frontend/data/adapters/clock.d.ts.map +1 -0
- package/dist/frontend/data/adapters/clock.js +8 -0
- package/dist/frontend/data/adapters/clock.js.map +1 -0
- package/dist/frontend/data/core/cache.d.ts +49 -0
- package/dist/frontend/data/core/cache.d.ts.map +1 -0
- package/dist/frontend/data/core/cache.js +189 -0
- package/dist/frontend/data/core/cache.js.map +1 -0
- package/dist/frontend/data/core/mutation.d.ts +27 -0
- package/dist/frontend/data/core/mutation.d.ts.map +1 -0
- package/dist/frontend/data/core/mutation.js +24 -0
- package/dist/frontend/data/core/mutation.js.map +1 -0
- package/dist/frontend/data/core/optimistic.d.ts +35 -0
- package/dist/frontend/data/core/optimistic.d.ts.map +1 -0
- package/dist/frontend/data/core/optimistic.js +41 -0
- package/dist/frontend/data/core/optimistic.js.map +1 -0
- package/dist/frontend/data/core/pagination.d.ts +36 -0
- package/dist/frontend/data/core/pagination.d.ts.map +1 -0
- package/dist/frontend/data/core/pagination.js +53 -0
- package/dist/frontend/data/core/pagination.js.map +1 -0
- package/dist/frontend/data/core/ports.d.ts +56 -0
- package/dist/frontend/data/core/ports.d.ts.map +1 -0
- package/dist/frontend/data/core/ports.js +11 -0
- package/dist/frontend/data/core/ports.js.map +1 -0
- package/dist/frontend/data/core/query.d.ts +26 -0
- package/dist/frontend/data/core/query.d.ts.map +1 -0
- package/dist/frontend/data/core/query.js +42 -0
- package/dist/frontend/data/core/query.js.map +1 -0
- package/dist/frontend/data/index.d.ts +23 -0
- package/dist/frontend/data/index.d.ts.map +1 -0
- package/dist/frontend/data/index.js +7 -0
- package/dist/frontend/data/index.js.map +1 -0
- package/dist/frontend/data/nuxt/module.d.ts +17 -0
- package/dist/frontend/data/nuxt/module.d.ts.map +1 -0
- package/dist/frontend/data/nuxt/module.js +25 -0
- package/dist/frontend/data/nuxt/module.js.map +1 -0
- package/dist/frontend/data/vue/index.d.ts +3 -0
- package/dist/frontend/data/vue/index.d.ts.map +1 -0
- package/dist/frontend/data/vue/index.js +2 -0
- package/dist/frontend/data/vue/index.js.map +1 -0
- package/dist/frontend/data/vue/provide.d.ts +72 -0
- package/dist/frontend/data/vue/provide.d.ts.map +1 -0
- package/dist/frontend/data/vue/provide.js +143 -0
- package/dist/frontend/data/vue/provide.js.map +1 -0
- package/dist/frontend/forms/adapters/zod-schema.d.ts +9 -0
- package/dist/frontend/forms/adapters/zod-schema.d.ts.map +1 -0
- package/dist/frontend/forms/adapters/zod-schema.js +37 -0
- package/dist/frontend/forms/adapters/zod-schema.js.map +1 -0
- package/dist/frontend/forms/core/errors.d.ts +17 -0
- package/dist/frontend/forms/core/errors.d.ts.map +1 -0
- package/dist/frontend/forms/core/errors.js +23 -0
- package/dist/frontend/forms/core/errors.js.map +1 -0
- package/dist/frontend/forms/core/form.d.ts +55 -0
- package/dist/frontend/forms/core/form.d.ts.map +1 -0
- package/dist/frontend/forms/core/form.js +179 -0
- package/dist/frontend/forms/core/form.js.map +1 -0
- package/dist/frontend/forms/core/index.d.ts +6 -0
- package/dist/frontend/forms/core/index.d.ts.map +1 -0
- package/dist/frontend/forms/core/index.js +4 -0
- package/dist/frontend/forms/core/index.js.map +1 -0
- package/dist/frontend/forms/core/ports.d.ts +68 -0
- package/dist/frontend/forms/core/ports.d.ts.map +1 -0
- package/dist/frontend/forms/core/ports.js +8 -0
- package/dist/frontend/forms/core/ports.js.map +1 -0
- package/dist/frontend/forms/index.d.ts +12 -0
- package/dist/frontend/forms/index.d.ts.map +1 -0
- package/dist/frontend/forms/index.js +5 -0
- package/dist/frontend/forms/index.js.map +1 -0
- package/dist/frontend/forms/nuxt/module.d.ts +16 -0
- package/dist/frontend/forms/nuxt/module.d.ts.map +1 -0
- package/dist/frontend/forms/nuxt/module.js +34 -0
- package/dist/frontend/forms/nuxt/module.js.map +1 -0
- package/dist/frontend/forms/vue/index.d.ts +7 -0
- package/dist/frontend/forms/vue/index.d.ts.map +1 -0
- package/dist/frontend/forms/vue/index.js +4 -0
- package/dist/frontend/forms/vue/index.js.map +1 -0
- package/dist/frontend/forms/vue/provide.d.ts +34 -0
- package/dist/frontend/forms/vue/provide.d.ts.map +1 -0
- package/dist/frontend/forms/vue/provide.js +43 -0
- package/dist/frontend/forms/vue/provide.js.map +1 -0
- package/dist/frontend/forms/vue/use-field.d.ts +39 -0
- package/dist/frontend/forms/vue/use-field.d.ts.map +1 -0
- package/dist/frontend/forms/vue/use-field.js +57 -0
- package/dist/frontend/forms/vue/use-field.js.map +1 -0
- package/dist/frontend/forms/vue/use-form.d.ts +34 -0
- package/dist/frontend/forms/vue/use-form.d.ts.map +1 -0
- package/dist/frontend/forms/vue/use-form.js +45 -0
- package/dist/frontend/forms/vue/use-form.js.map +1 -0
- package/dist/frontend/http-client/adapters/fetch-transport.d.ts +11 -0
- package/dist/frontend/http-client/adapters/fetch-transport.d.ts.map +1 -0
- package/dist/frontend/http-client/adapters/fetch-transport.js +38 -0
- package/dist/frontend/http-client/adapters/fetch-transport.js.map +1 -0
- package/dist/frontend/http-client/adapters/token-provider.d.ts +13 -0
- package/dist/frontend/http-client/adapters/token-provider.d.ts.map +1 -0
- package/dist/frontend/http-client/adapters/token-provider.js +24 -0
- package/dist/frontend/http-client/adapters/token-provider.js.map +1 -0
- package/dist/frontend/http-client/core/client.d.ts +78 -0
- package/dist/frontend/http-client/core/client.d.ts.map +1 -0
- package/dist/frontend/http-client/core/client.js +240 -0
- package/dist/frontend/http-client/core/client.js.map +1 -0
- package/dist/frontend/http-client/core/errors.d.ts +60 -0
- package/dist/frontend/http-client/core/errors.d.ts.map +1 -0
- package/dist/frontend/http-client/core/errors.js +58 -0
- package/dist/frontend/http-client/core/errors.js.map +1 -0
- package/dist/frontend/http-client/core/interceptors.d.ts +26 -0
- package/dist/frontend/http-client/core/interceptors.d.ts.map +1 -0
- package/dist/frontend/http-client/core/interceptors.js +41 -0
- package/dist/frontend/http-client/core/interceptors.js.map +1 -0
- package/dist/frontend/http-client/core/ports.d.ts +64 -0
- package/dist/frontend/http-client/core/ports.d.ts.map +1 -0
- package/dist/frontend/http-client/core/ports.js +6 -0
- package/dist/frontend/http-client/core/ports.js.map +1 -0
- package/dist/frontend/http-client/core/typed-client.d.ts +59 -0
- package/dist/frontend/http-client/core/typed-client.d.ts.map +1 -0
- package/dist/frontend/http-client/core/typed-client.js +31 -0
- package/dist/frontend/http-client/core/typed-client.js.map +1 -0
- package/dist/frontend/http-client/index.d.ts +18 -0
- package/dist/frontend/http-client/index.d.ts.map +1 -0
- package/dist/frontend/http-client/index.js +7 -0
- package/dist/frontend/http-client/index.js.map +1 -0
- package/dist/frontend/http-client/nuxt/module.d.ts +16 -0
- package/dist/frontend/http-client/nuxt/module.d.ts.map +1 -0
- package/dist/frontend/http-client/nuxt/module.js +30 -0
- package/dist/frontend/http-client/nuxt/module.js.map +1 -0
- package/dist/frontend/http-client/vue/index.d.ts +6 -0
- package/dist/frontend/http-client/vue/index.d.ts.map +1 -0
- package/dist/frontend/http-client/vue/index.js +6 -0
- package/dist/frontend/http-client/vue/index.js.map +1 -0
- package/dist/frontend/http-client/vue/provide.d.ts +13 -0
- package/dist/frontend/http-client/vue/provide.d.ts.map +1 -0
- package/dist/frontend/http-client/vue/provide.js +20 -0
- package/dist/frontend/http-client/vue/provide.js.map +1 -0
- package/dist/frontend/i18n/adapters/catalog-loader.d.ts +8 -0
- package/dist/frontend/i18n/adapters/catalog-loader.d.ts.map +1 -0
- package/dist/frontend/i18n/adapters/catalog-loader.js +13 -0
- package/dist/frontend/i18n/adapters/catalog-loader.js.map +1 -0
- package/dist/frontend/i18n/adapters/locale-source.d.ts +19 -0
- package/dist/frontend/i18n/adapters/locale-source.d.ts.map +1 -0
- package/dist/frontend/i18n/adapters/locale-source.js +18 -0
- package/dist/frontend/i18n/adapters/locale-source.js.map +1 -0
- package/dist/frontend/i18n/adapters/reporters.d.ts +8 -0
- package/dist/frontend/i18n/adapters/reporters.d.ts.map +1 -0
- package/dist/frontend/i18n/adapters/reporters.js +19 -0
- package/dist/frontend/i18n/adapters/reporters.js.map +1 -0
- package/dist/frontend/i18n/core/catalog.d.ts +45 -0
- package/dist/frontend/i18n/core/catalog.d.ts.map +1 -0
- package/dist/frontend/i18n/core/catalog.js +105 -0
- package/dist/frontend/i18n/core/catalog.js.map +1 -0
- package/dist/frontend/i18n/core/errors.d.ts +8 -0
- package/dist/frontend/i18n/core/errors.d.ts.map +1 -0
- package/dist/frontend/i18n/core/errors.js +11 -0
- package/dist/frontend/i18n/core/errors.js.map +1 -0
- package/dist/frontend/i18n/core/format.d.ts +13 -0
- package/dist/frontend/i18n/core/format.d.ts.map +1 -0
- package/dist/frontend/i18n/core/format.js +61 -0
- package/dist/frontend/i18n/core/format.js.map +1 -0
- package/dist/frontend/i18n/core/interpolate.d.ts +13 -0
- package/dist/frontend/i18n/core/interpolate.d.ts.map +1 -0
- package/dist/frontend/i18n/core/interpolate.js +43 -0
- package/dist/frontend/i18n/core/interpolate.js.map +1 -0
- package/dist/frontend/i18n/core/negotiation.d.ts +22 -0
- package/dist/frontend/i18n/core/negotiation.d.ts.map +1 -0
- package/dist/frontend/i18n/core/negotiation.js +29 -0
- package/dist/frontend/i18n/core/negotiation.js.map +1 -0
- package/dist/frontend/i18n/core/ports.d.ts +35 -0
- package/dist/frontend/i18n/core/ports.d.ts.map +1 -0
- package/dist/frontend/i18n/core/ports.js +7 -0
- package/dist/frontend/i18n/core/ports.js.map +1 -0
- package/dist/frontend/i18n/index.d.ts +20 -0
- package/dist/frontend/i18n/index.d.ts.map +1 -0
- package/dist/frontend/i18n/index.js +9 -0
- package/dist/frontend/i18n/index.js.map +1 -0
- package/dist/frontend/i18n/nuxt/module.d.ts +25 -0
- package/dist/frontend/i18n/nuxt/module.d.ts.map +1 -0
- package/dist/frontend/i18n/nuxt/module.js +56 -0
- package/dist/frontend/i18n/nuxt/module.js.map +1 -0
- package/dist/frontend/i18n/vue/index.d.ts +3 -0
- package/dist/frontend/i18n/vue/index.d.ts.map +1 -0
- package/dist/frontend/i18n/vue/index.js +2 -0
- package/dist/frontend/i18n/vue/index.js.map +1 -0
- package/dist/frontend/i18n/vue/provide.d.ts +48 -0
- package/dist/frontend/i18n/vue/provide.d.ts.map +1 -0
- package/dist/frontend/i18n/vue/provide.js +45 -0
- package/dist/frontend/i18n/vue/provide.js.map +1 -0
- package/dist/frontend/index.d.ts +24 -0
- package/dist/frontend/index.d.ts.map +1 -0
- package/dist/frontend/index.js +27 -0
- package/dist/frontend/index.js.map +1 -0
- package/dist/frontend/notifications/adapters/persistence.d.ts +10 -0
- package/dist/frontend/notifications/adapters/persistence.d.ts.map +1 -0
- package/dist/frontend/notifications/adapters/persistence.js +19 -0
- package/dist/frontend/notifications/adapters/persistence.js.map +1 -0
- package/dist/frontend/notifications/adapters/timers.d.ts +9 -0
- package/dist/frontend/notifications/adapters/timers.d.ts.map +1 -0
- package/dist/frontend/notifications/adapters/timers.js +19 -0
- package/dist/frontend/notifications/adapters/timers.js.map +1 -0
- package/dist/frontend/notifications/core/banner-store.d.ts +43 -0
- package/dist/frontend/notifications/core/banner-store.d.ts.map +1 -0
- package/dist/frontend/notifications/core/banner-store.js +68 -0
- package/dist/frontend/notifications/core/banner-store.js.map +1 -0
- package/dist/frontend/notifications/core/create.d.ts +26 -0
- package/dist/frontend/notifications/core/create.d.ts.map +1 -0
- package/dist/frontend/notifications/core/create.js +17 -0
- package/dist/frontend/notifications/core/create.js.map +1 -0
- package/dist/frontend/notifications/core/ports.d.ts +31 -0
- package/dist/frontend/notifications/core/ports.d.ts.map +1 -0
- package/dist/frontend/notifications/core/ports.js +8 -0
- package/dist/frontend/notifications/core/ports.js.map +1 -0
- package/dist/frontend/notifications/core/toast-store.d.ts +57 -0
- package/dist/frontend/notifications/core/toast-store.d.ts.map +1 -0
- package/dist/frontend/notifications/core/toast-store.js +125 -0
- package/dist/frontend/notifications/core/toast-store.js.map +1 -0
- package/dist/frontend/notifications/index.d.ts +16 -0
- package/dist/frontend/notifications/index.d.ts.map +1 -0
- package/dist/frontend/notifications/index.js +6 -0
- package/dist/frontend/notifications/index.js.map +1 -0
- package/dist/frontend/notifications/nuxt/module.d.ts +19 -0
- package/dist/frontend/notifications/nuxt/module.d.ts.map +1 -0
- package/dist/frontend/notifications/nuxt/module.js +32 -0
- package/dist/frontend/notifications/nuxt/module.js.map +1 -0
- package/dist/frontend/notifications/vue/index.d.ts +4 -0
- package/dist/frontend/notifications/vue/index.d.ts.map +1 -0
- package/dist/frontend/notifications/vue/index.js +3 -0
- package/dist/frontend/notifications/vue/index.js.map +1 -0
- package/dist/frontend/notifications/vue/provide.d.ts +35 -0
- package/dist/frontend/notifications/vue/provide.d.ts.map +1 -0
- package/dist/frontend/notifications/vue/provide.js +53 -0
- package/dist/frontend/notifications/vue/provide.js.map +1 -0
- package/dist/frontend/notifications/vue/toaster.d.ts +45 -0
- package/dist/frontend/notifications/vue/toaster.d.ts.map +1 -0
- package/dist/frontend/notifications/vue/toaster.js +82 -0
- package/dist/frontend/notifications/vue/toaster.js.map +1 -0
- package/dist/frontend/observability/adapters/id-clock.d.ts +20 -0
- package/dist/frontend/observability/adapters/id-clock.d.ts.map +1 -0
- package/dist/frontend/observability/adapters/id-clock.js +54 -0
- package/dist/frontend/observability/adapters/id-clock.js.map +1 -0
- package/dist/frontend/observability/adapters/sinks.d.ts +23 -0
- package/dist/frontend/observability/adapters/sinks.d.ts.map +1 -0
- package/dist/frontend/observability/adapters/sinks.js +40 -0
- package/dist/frontend/observability/adapters/sinks.js.map +1 -0
- package/dist/frontend/observability/core/error-reporter.d.ts +32 -0
- package/dist/frontend/observability/core/error-reporter.d.ts.map +1 -0
- package/dist/frontend/observability/core/error-reporter.js +64 -0
- package/dist/frontend/observability/core/error-reporter.js.map +1 -0
- package/dist/frontend/observability/core/logger.d.ts +29 -0
- package/dist/frontend/observability/core/logger.d.ts.map +1 -0
- package/dist/frontend/observability/core/logger.js +39 -0
- package/dist/frontend/observability/core/logger.js.map +1 -0
- package/dist/frontend/observability/core/ports.d.ts +72 -0
- package/dist/frontend/observability/core/ports.d.ts.map +1 -0
- package/dist/frontend/observability/core/ports.js +7 -0
- package/dist/frontend/observability/core/ports.js.map +1 -0
- package/dist/frontend/observability/core/redaction.d.ts +20 -0
- package/dist/frontend/observability/core/redaction.d.ts.map +1 -0
- package/dist/frontend/observability/core/redaction.js +38 -0
- package/dist/frontend/observability/core/redaction.js.map +1 -0
- package/dist/frontend/observability/core/rum.d.ts +35 -0
- package/dist/frontend/observability/core/rum.d.ts.map +1 -0
- package/dist/frontend/observability/core/rum.js +42 -0
- package/dist/frontend/observability/core/rum.js.map +1 -0
- package/dist/frontend/observability/core/trace.d.ts +32 -0
- package/dist/frontend/observability/core/trace.d.ts.map +1 -0
- package/dist/frontend/observability/core/trace.js +76 -0
- package/dist/frontend/observability/core/trace.js.map +1 -0
- package/dist/frontend/observability/index.d.ts +20 -0
- package/dist/frontend/observability/index.d.ts.map +1 -0
- package/dist/frontend/observability/index.js +20 -0
- package/dist/frontend/observability/index.js.map +1 -0
- package/dist/frontend/observability/nuxt/module.d.ts +17 -0
- package/dist/frontend/observability/nuxt/module.d.ts.map +1 -0
- package/dist/frontend/observability/nuxt/module.js +32 -0
- package/dist/frontend/observability/nuxt/module.js.map +1 -0
- package/dist/frontend/observability/vue/index.d.ts +2 -0
- package/dist/frontend/observability/vue/index.d.ts.map +1 -0
- package/dist/frontend/observability/vue/index.js +2 -0
- package/dist/frontend/observability/vue/index.js.map +1 -0
- package/dist/frontend/observability/vue/provide.d.ts +13 -0
- package/dist/frontend/observability/vue/provide.d.ts.map +1 -0
- package/dist/frontend/observability/vue/provide.js +20 -0
- package/dist/frontend/observability/vue/provide.js.map +1 -0
- package/dist/frontend/payment/adapters/clock.d.ts +7 -0
- package/dist/frontend/payment/adapters/clock.d.ts.map +1 -0
- package/dist/frontend/payment/adapters/clock.js +8 -0
- package/dist/frontend/payment/adapters/clock.js.map +1 -0
- package/dist/frontend/payment/adapters/contract.d.ts +10 -0
- package/dist/frontend/payment/adapters/contract.d.ts.map +1 -0
- package/dist/frontend/payment/adapters/contract.js +25 -0
- package/dist/frontend/payment/adapters/contract.js.map +1 -0
- package/dist/frontend/payment/adapters/memory-pending-store.d.ts +9 -0
- package/dist/frontend/payment/adapters/memory-pending-store.d.ts.map +1 -0
- package/dist/frontend/payment/adapters/memory-pending-store.js +19 -0
- package/dist/frontend/payment/adapters/memory-pending-store.js.map +1 -0
- package/dist/frontend/payment/adapters/mollie.d.ts +3 -0
- package/dist/frontend/payment/adapters/mollie.d.ts.map +1 -0
- package/dist/frontend/payment/adapters/mollie.js +76 -0
- package/dist/frontend/payment/adapters/mollie.js.map +1 -0
- package/dist/frontend/payment/adapters/stripe.d.ts +3 -0
- package/dist/frontend/payment/adapters/stripe.d.ts.map +1 -0
- package/dist/frontend/payment/adapters/stripe.js +81 -0
- package/dist/frontend/payment/adapters/stripe.js.map +1 -0
- package/dist/frontend/payment/core/checkout.d.ts +65 -0
- package/dist/frontend/payment/core/checkout.d.ts.map +1 -0
- package/dist/frontend/payment/core/checkout.js +124 -0
- package/dist/frontend/payment/core/checkout.js.map +1 -0
- package/dist/frontend/payment/core/errors.d.ts +44 -0
- package/dist/frontend/payment/core/errors.d.ts.map +1 -0
- package/dist/frontend/payment/core/errors.js +49 -0
- package/dist/frontend/payment/core/errors.js.map +1 -0
- package/dist/frontend/payment/core/ports.d.ts +93 -0
- package/dist/frontend/payment/core/ports.d.ts.map +1 -0
- package/dist/frontend/payment/core/ports.js +8 -0
- package/dist/frontend/payment/core/ports.js.map +1 -0
- package/dist/frontend/payment/index.d.ts +20 -0
- package/dist/frontend/payment/index.d.ts.map +1 -0
- package/dist/frontend/payment/index.js +7 -0
- package/dist/frontend/payment/index.js.map +1 -0
- package/dist/frontend/payment/nuxt/module.d.ts +16 -0
- package/dist/frontend/payment/nuxt/module.d.ts.map +1 -0
- package/dist/frontend/payment/nuxt/module.js +39 -0
- package/dist/frontend/payment/nuxt/module.js.map +1 -0
- package/dist/frontend/payment/vue/index.d.ts +3 -0
- package/dist/frontend/payment/vue/index.d.ts.map +1 -0
- package/dist/frontend/payment/vue/index.js +2 -0
- package/dist/frontend/payment/vue/index.js.map +1 -0
- package/dist/frontend/payment/vue/provide.d.ts +38 -0
- package/dist/frontend/payment/vue/provide.d.ts.map +1 -0
- package/dist/frontend/payment/vue/provide.js +55 -0
- package/dist/frontend/payment/vue/provide.js.map +1 -0
- package/dist/frontend/scaffolder/core/blueprint.d.ts +20 -0
- package/dist/frontend/scaffolder/core/blueprint.d.ts.map +1 -0
- package/dist/frontend/scaffolder/core/blueprint.js +71 -0
- package/dist/frontend/scaffolder/core/blueprint.js.map +1 -0
- package/dist/frontend/scaffolder/core/catalog.d.ts +68 -0
- package/dist/frontend/scaffolder/core/catalog.d.ts.map +1 -0
- package/dist/frontend/scaffolder/core/catalog.js +256 -0
- package/dist/frontend/scaffolder/core/catalog.js.map +1 -0
- package/dist/frontend/scaffolder/core/errors.d.ts +44 -0
- package/dist/frontend/scaffolder/core/errors.d.ts.map +1 -0
- package/dist/frontend/scaffolder/core/errors.js +59 -0
- package/dist/frontend/scaffolder/core/errors.js.map +1 -0
- package/dist/frontend/scaffolder/core/manifest.d.ts +92 -0
- package/dist/frontend/scaffolder/core/manifest.d.ts.map +1 -0
- package/dist/frontend/scaffolder/core/manifest.js +101 -0
- package/dist/frontend/scaffolder/core/manifest.js.map +1 -0
- package/dist/frontend/scaffolder/core/project.d.ts +9 -0
- package/dist/frontend/scaffolder/core/project.d.ts.map +1 -0
- package/dist/frontend/scaffolder/core/project.js +17 -0
- package/dist/frontend/scaffolder/core/project.js.map +1 -0
- package/dist/frontend/scaffolder/core/wiring-generator.d.ts +45 -0
- package/dist/frontend/scaffolder/core/wiring-generator.d.ts.map +1 -0
- package/dist/frontend/scaffolder/core/wiring-generator.js +132 -0
- package/dist/frontend/scaffolder/core/wiring-generator.js.map +1 -0
- package/dist/frontend/scaffolder/index.d.ts +20 -0
- package/dist/frontend/scaffolder/index.d.ts.map +1 -0
- package/dist/frontend/scaffolder/index.js +22 -0
- package/dist/frontend/scaffolder/index.js.map +1 -0
- package/dist/frontend/scaffolder/templates/index.d.ts +5 -0
- package/dist/frontend/scaffolder/templates/index.d.ts.map +1 -0
- package/dist/frontend/scaffolder/templates/index.js +5 -0
- package/dist/frontend/scaffolder/templates/index.js.map +1 -0
- package/dist/frontend/scaffolder/templates/starter.d.ts +16 -0
- package/dist/frontend/scaffolder/templates/starter.d.ts.map +1 -0
- package/dist/frontend/scaffolder/templates/starter.js +80 -0
- package/dist/frontend/scaffolder/templates/starter.js.map +1 -0
- package/dist/frontend/test-kit/core/a11y.d.ts +29 -0
- package/dist/frontend/test-kit/core/a11y.d.ts.map +1 -0
- package/dist/frontend/test-kit/core/a11y.js +31 -0
- package/dist/frontend/test-kit/core/a11y.js.map +1 -0
- package/dist/frontend/test-kit/core/fixture-factory.d.ts +24 -0
- package/dist/frontend/test-kit/core/fixture-factory.d.ts.map +1 -0
- package/dist/frontend/test-kit/core/fixture-factory.js +18 -0
- package/dist/frontend/test-kit/core/fixture-factory.js.map +1 -0
- package/dist/frontend/test-kit/core/mock-handler.d.ts +33 -0
- package/dist/frontend/test-kit/core/mock-handler.d.ts.map +1 -0
- package/dist/frontend/test-kit/core/mock-handler.js +19 -0
- package/dist/frontend/test-kit/core/mock-handler.js.map +1 -0
- package/dist/frontend/test-kit/core/page-object.d.ts +33 -0
- package/dist/frontend/test-kit/core/page-object.d.ts.map +1 -0
- package/dist/frontend/test-kit/core/page-object.js +39 -0
- package/dist/frontend/test-kit/core/page-object.js.map +1 -0
- package/dist/frontend/test-kit/core/ports.d.ts +57 -0
- package/dist/frontend/test-kit/core/ports.d.ts.map +1 -0
- package/dist/frontend/test-kit/core/ports.js +8 -0
- package/dist/frontend/test-kit/core/ports.js.map +1 -0
- package/dist/frontend/test-kit/core/sequence.d.ts +8 -0
- package/dist/frontend/test-kit/core/sequence.d.ts.map +1 -0
- package/dist/frontend/test-kit/core/sequence.js +14 -0
- package/dist/frontend/test-kit/core/sequence.js.map +1 -0
- package/dist/frontend/test-kit/index.d.ts +17 -0
- package/dist/frontend/test-kit/index.d.ts.map +1 -0
- package/dist/frontend/test-kit/index.js +16 -0
- package/dist/frontend/test-kit/index.js.map +1 -0
- package/dist/frontend/test-kit/nuxt/module.d.ts +16 -0
- package/dist/frontend/test-kit/nuxt/module.d.ts.map +1 -0
- package/dist/frontend/test-kit/nuxt/module.js +13 -0
- package/dist/frontend/test-kit/nuxt/module.js.map +1 -0
- package/dist/frontend/test-kit/vue/index.d.ts +7 -0
- package/dist/frontend/test-kit/vue/index.d.ts.map +1 -0
- package/dist/frontend/test-kit/vue/index.js +6 -0
- package/dist/frontend/test-kit/vue/index.js.map +1 -0
- package/dist/frontend/test-kit/vue/mount.d.ts +31 -0
- package/dist/frontend/test-kit/vue/mount.d.ts.map +1 -0
- package/dist/frontend/test-kit/vue/mount.js +26 -0
- package/dist/frontend/test-kit/vue/mount.js.map +1 -0
- package/package.json +366 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ports.d.ts","sourceRoot":"","sources":["../../../../backend/src/rate-limit/core/ports.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC;AAEjC,6CAA6C;AAC7C,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,8DAA8D;IAC9D,SAAS,EAAE,MAAM,CAAC;IAClB,sDAAsD;IACtD,OAAO,EAAE,MAAM,CAAC;IAChB,mEAAmE;IACnE,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,2FAA2F;AAC3F,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,oDAAoD;IACpD,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IACjF,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;CACtF;AAED,8FAA8F;AAC9F,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;CAC/D"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ports.js","sourceRoot":"","sources":["../../../../backend/src/rate-limit/core/ports.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { Clock, RateLimitStore, RateLimiter } from './ports.js';
|
|
2
|
+
export interface SlidingWindowConfig {
|
|
3
|
+
/** Maximaal aantal requests binnen het venster. */
|
|
4
|
+
limit: number;
|
|
5
|
+
/** Venstergrootte in seconden. */
|
|
6
|
+
windowSeconds: number;
|
|
7
|
+
}
|
|
8
|
+
export declare function slidingWindowLimiter(config: SlidingWindowConfig, store: RateLimitStore, clock?: Clock): RateLimiter;
|
|
9
|
+
//# sourceMappingURL=sliding-window.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sliding-window.d.ts","sourceRoot":"","sources":["../../../../backend/src/rate-limit/core/sliding-window.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAErE,MAAM,WAAW,mBAAmB;IAClC,mDAAmD;IACnD,KAAK,EAAE,MAAM,CAAC;IACd,kCAAkC;IAClC,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,mBAAmB,EAC3B,KAAK,EAAE,cAAc,EACrB,KAAK,GAAE,KAAgB,GACtB,WAAW,CAiBb"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* US-0602 — Sliding-window-limiter (voortschrijdend venster via gewogen teller). Vermijdt de
|
|
3
|
+
* grens-burst van een vast venster. Config-validatie fail-fast; atomaire telling via de
|
|
4
|
+
* {@link RateLimitStore}-poort — dezelfde store-abstractie als token-bucket.
|
|
5
|
+
*/
|
|
6
|
+
import { assertPositive } from './errors.js';
|
|
7
|
+
export function slidingWindowLimiter(config, store, clock = Date.now) {
|
|
8
|
+
assertPositive('limit', config.limit);
|
|
9
|
+
assertPositive('windowSeconds', config.windowSeconds);
|
|
10
|
+
const windowMs = config.windowSeconds * 1000;
|
|
11
|
+
return {
|
|
12
|
+
limit: config.limit,
|
|
13
|
+
async consume(key, cost = 1) {
|
|
14
|
+
const result = await store.consumeSlidingWindow(key, {
|
|
15
|
+
limit: config.limit,
|
|
16
|
+
windowMs,
|
|
17
|
+
cost,
|
|
18
|
+
nowMs: clock(),
|
|
19
|
+
});
|
|
20
|
+
return { ...result, limit: config.limit };
|
|
21
|
+
},
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=sliding-window.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sliding-window.js","sourceRoot":"","sources":["../../../../backend/src/rate-limit/core/sliding-window.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAU7C,MAAM,UAAU,oBAAoB,CAClC,MAA2B,EAC3B,KAAqB,EACrB,QAAe,IAAI,CAAC,GAAG;IAEvB,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IACtC,cAAc,CAAC,eAAe,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC;IACtD,MAAM,QAAQ,GAAG,MAAM,CAAC,aAAa,GAAG,IAAI,CAAC;IAE7C,OAAO;QACL,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,GAAG,CAAC;YACzB,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,oBAAoB,CAAC,GAAG,EAAE;gBACnD,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,QAAQ;gBACR,IAAI;gBACJ,KAAK,EAAE,KAAK,EAAE;aACf,CAAC,CAAC;YACH,OAAO,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;QAC5C,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { Clock, RateLimitStore, RateLimiter } from './ports.js';
|
|
2
|
+
export interface TokenBucketConfig {
|
|
3
|
+
/** Maximale burst-capaciteit (tokens). */
|
|
4
|
+
capacity: number;
|
|
5
|
+
/** Bijvul-rate in tokens per seconde. */
|
|
6
|
+
refillPerSecond: number;
|
|
7
|
+
}
|
|
8
|
+
export declare function tokenBucketLimiter(config: TokenBucketConfig, store: RateLimitStore, clock?: Clock): RateLimiter;
|
|
9
|
+
//# sourceMappingURL=token-bucket.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"token-bucket.d.ts","sourceRoot":"","sources":["../../../../backend/src/rate-limit/core/token-bucket.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAErE,MAAM,WAAW,iBAAiB;IAChC,0CAA0C;IAC1C,QAAQ,EAAE,MAAM,CAAC;IACjB,yCAAyC;IACzC,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,iBAAiB,EACzB,KAAK,EAAE,cAAc,EACrB,KAAK,GAAE,KAAgB,GACtB,WAAW,CAiBb"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* US-0601 — Token-bucket-limiter. Per sleutel een bucket met burst-capaciteit die met een
|
|
3
|
+
* configureerbare rate wordt bijgevuld. Config-validatie fail-fast (nooit stil terugvallen op
|
|
4
|
+
* "onbeperkt toestaan"); de atomaire state loopt via de {@link RateLimitStore}-poort.
|
|
5
|
+
*/
|
|
6
|
+
import { assertPositive } from './errors.js';
|
|
7
|
+
export function tokenBucketLimiter(config, store, clock = Date.now) {
|
|
8
|
+
assertPositive('capacity', config.capacity);
|
|
9
|
+
assertPositive('refillPerSecond', config.refillPerSecond);
|
|
10
|
+
const refillPerMs = config.refillPerSecond / 1000;
|
|
11
|
+
return {
|
|
12
|
+
limit: config.capacity,
|
|
13
|
+
async consume(key, cost = 1) {
|
|
14
|
+
const result = await store.consumeTokenBucket(key, {
|
|
15
|
+
capacity: config.capacity,
|
|
16
|
+
refillPerMs,
|
|
17
|
+
cost,
|
|
18
|
+
nowMs: clock(),
|
|
19
|
+
});
|
|
20
|
+
return { ...result, limit: config.capacity };
|
|
21
|
+
},
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=token-bucket.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"token-bucket.js","sourceRoot":"","sources":["../../../../backend/src/rate-limit/core/token-bucket.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAU7C,MAAM,UAAU,kBAAkB,CAChC,MAAyB,EACzB,KAAqB,EACrB,QAAe,IAAI,CAAC,GAAG;IAEvB,cAAc,CAAC,UAAU,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC5C,cAAc,CAAC,iBAAiB,EAAE,MAAM,CAAC,eAAe,CAAC,CAAC;IAC1D,MAAM,WAAW,GAAG,MAAM,CAAC,eAAe,GAAG,IAAI,CAAC;IAElD,OAAO;QACL,KAAK,EAAE,MAAM,CAAC,QAAQ;QACtB,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,GAAG,CAAC;YACzB,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,kBAAkB,CAAC,GAAG,EAAE;gBACjD,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,WAAW;gBACX,IAAI;gBACJ,KAAK,EAAE,KAAK,EAAE;aACf,CAAC,CAAC;YACH,OAAO,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC;QAC/C,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `rate-limit` kit — domein-loze throttling: token-bucket + sliding-window over een pluggable atomaire
|
|
3
|
+
* store (in-memory + Redis), met enforcement-middleware en standaard-headers. Pure core + adapters.
|
|
4
|
+
*
|
|
5
|
+
* De NestJS-guard zit onder `@seifer-webapp-factory/kits/backend/rate-limit/nestjs`.
|
|
6
|
+
*/
|
|
7
|
+
export { tokenBucketLimiter, type TokenBucketConfig } from './core/token-bucket.js';
|
|
8
|
+
export { slidingWindowLimiter, type SlidingWindowConfig } from './core/sliding-window.js';
|
|
9
|
+
export { enforceRateLimit, rateLimitHeaders, type RateLimitDecision, type EnforceOptions, } from './core/enforcer.js';
|
|
10
|
+
export type { Clock, RateLimiter, RateLimitResult, RateLimitStore, StoreResult, TokenBucketParams, SlidingWindowParams, } from './core/ports.js';
|
|
11
|
+
export { RateLimitError, RateLimitConfigError, StoreUnavailableError, } from './core/errors.js';
|
|
12
|
+
export { inMemoryRateLimitStore } from './adapters/in-memory-store.js';
|
|
13
|
+
export { redisRateLimitStore, type RedisLike, type RedisRateLimitStoreOptions, } from './adapters/redis-store.js';
|
|
14
|
+
export { rateLimitMiddleware, type RateLimitMiddlewareOptions } from './nodejs/middleware.js';
|
|
15
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../backend/src/rate-limit/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,kBAAkB,EAAE,KAAK,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AACpF,OAAO,EAAE,oBAAoB,EAAE,KAAK,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAG1F,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,KAAK,iBAAiB,EACtB,KAAK,cAAc,GACpB,MAAM,oBAAoB,CAAC;AAG5B,YAAY,EACV,KAAK,EACL,WAAW,EACX,eAAe,EACf,cAAc,EACd,WAAW,EACX,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EACL,mBAAmB,EACnB,KAAK,SAAS,EACd,KAAK,0BAA0B,GAChC,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EAAE,mBAAmB,EAAE,KAAK,0BAA0B,EAAE,MAAM,wBAAwB,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `rate-limit` kit — domein-loze throttling: token-bucket + sliding-window over een pluggable atomaire
|
|
3
|
+
* store (in-memory + Redis), met enforcement-middleware en standaard-headers. Pure core + adapters.
|
|
4
|
+
*
|
|
5
|
+
* De NestJS-guard zit onder `@seifer-webapp-factory/kits/backend/rate-limit/nestjs`.
|
|
6
|
+
*/
|
|
7
|
+
// Algoritmen (US-0601/US-0602)
|
|
8
|
+
export { tokenBucketLimiter } from './core/token-bucket.js';
|
|
9
|
+
export { slidingWindowLimiter } from './core/sliding-window.js';
|
|
10
|
+
// Enforcement + headers (US-0604)
|
|
11
|
+
export { enforceRateLimit, rateLimitHeaders, } from './core/enforcer.js';
|
|
12
|
+
// Fouten
|
|
13
|
+
export { RateLimitError, RateLimitConfigError, StoreUnavailableError, } from './core/errors.js';
|
|
14
|
+
// Adapters (dep-vrij; de Redis-store gebruikt een structurele `RedisLike`-client)
|
|
15
|
+
export { inMemoryRateLimitStore } from './adapters/in-memory-store.js';
|
|
16
|
+
export { redisRateLimitStore, } from './adapters/redis-store.js';
|
|
17
|
+
// Node/express-middleware (US-0604)
|
|
18
|
+
export { rateLimitMiddleware } from './nodejs/middleware.js';
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../backend/src/rate-limit/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,+BAA+B;AAC/B,OAAO,EAAE,kBAAkB,EAA0B,MAAM,wBAAwB,CAAC;AACpF,OAAO,EAAE,oBAAoB,EAA4B,MAAM,0BAA0B,CAAC;AAE1F,kCAAkC;AAClC,OAAO,EACL,gBAAgB,EAChB,gBAAgB,GAGjB,MAAM,oBAAoB,CAAC;AAa5B,SAAS;AACT,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,kBAAkB,CAAC;AAE1B,kFAAkF;AAClF,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EACL,mBAAmB,GAGpB,MAAM,2BAA2B,CAAC;AAEnC,oCAAoC;AACpC,OAAO,EAAE,mBAAmB,EAAmC,MAAM,wBAAwB,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* NestJS-adapter voor US-0604: een `RateLimitGuard` die per request de limiter evalueert, de
|
|
3
|
+
* `X-RateLimit-*`-headers zet en bij weigering een `429` (met `Retry-After`) gooit. De pure
|
|
4
|
+
* enforcement-logica zit in de core. `@nestjs/common` is een optionele peer-dependency.
|
|
5
|
+
*/
|
|
6
|
+
import { type CanActivate, type DynamicModule, type ExecutionContext } from '@nestjs/common';
|
|
7
|
+
import type { RateLimiter } from '../core/ports.js';
|
|
8
|
+
export declare const RATE_LIMIT_OPTIONS: unique symbol;
|
|
9
|
+
export interface RateLimitGuardOptions {
|
|
10
|
+
limiter: RateLimiter;
|
|
11
|
+
/** Leidt de sleutel af uit het request (bv. IP of user-id). */
|
|
12
|
+
getKey: (request: unknown) => string;
|
|
13
|
+
failPolicy?: 'open' | 'closed';
|
|
14
|
+
cost?: number;
|
|
15
|
+
global?: boolean;
|
|
16
|
+
}
|
|
17
|
+
export declare class RateLimitGuard implements CanActivate {
|
|
18
|
+
private readonly options;
|
|
19
|
+
constructor(options: RateLimitGuardOptions);
|
|
20
|
+
canActivate(context: ExecutionContext): Promise<boolean>;
|
|
21
|
+
}
|
|
22
|
+
export declare class RateLimitModule {
|
|
23
|
+
static forRoot(options: RateLimitGuardOptions): DynamicModule;
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=rate-limit.module.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rate-limit.module.d.ts","sourceRoot":"","sources":["../../../../backend/src/rate-limit/nestjs/rate-limit.module.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAIL,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,KAAK,gBAAgB,EAEtB,MAAM,gBAAgB,CAAC;AAExB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD,eAAO,MAAM,kBAAkB,eAAmC,CAAC;AAMnE,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,WAAW,CAAC;IACrB,+DAA+D;IAC/D,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,MAAM,CAAC;IACrC,UAAU,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,qBACa,cAAe,YAAW,WAAW;IACR,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,qBAAqB;IAEjF,WAAW,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC;CAsB/D;AAED,qBAAa,eAAe;IAC1B,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,qBAAqB,GAAG,aAAa;CAY9D"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
+
};
|
|
10
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
11
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* NestJS-adapter voor US-0604: een `RateLimitGuard` die per request de limiter evalueert, de
|
|
15
|
+
* `X-RateLimit-*`-headers zet en bij weigering een `429` (met `Retry-After`) gooit. De pure
|
|
16
|
+
* enforcement-logica zit in de core. `@nestjs/common` is een optionele peer-dependency.
|
|
17
|
+
*/
|
|
18
|
+
import { HttpException, Inject, Injectable, } from '@nestjs/common';
|
|
19
|
+
import { enforceRateLimit } from '../core/enforcer.js';
|
|
20
|
+
export const RATE_LIMIT_OPTIONS = Symbol.for('rate-limit.options');
|
|
21
|
+
let RateLimitGuard = class RateLimitGuard {
|
|
22
|
+
options;
|
|
23
|
+
constructor(options) {
|
|
24
|
+
this.options = options;
|
|
25
|
+
}
|
|
26
|
+
async canActivate(context) {
|
|
27
|
+
const request = context.switchToHttp().getRequest();
|
|
28
|
+
const response = context.switchToHttp().getResponse();
|
|
29
|
+
const decision = await enforceRateLimit(this.options.getKey(request), {
|
|
30
|
+
limiter: this.options.limiter,
|
|
31
|
+
...(this.options.failPolicy ? { failPolicy: this.options.failPolicy } : {}),
|
|
32
|
+
...(this.options.cost !== undefined ? { cost: this.options.cost } : {}),
|
|
33
|
+
});
|
|
34
|
+
for (const [header, value] of Object.entries(decision.headers)) {
|
|
35
|
+
response.header(header, value);
|
|
36
|
+
}
|
|
37
|
+
if (!decision.allowed) {
|
|
38
|
+
throw new HttpException({ error: { code: 'RATE_LIMITED', message: 'Too Many Requests' } }, decision.status);
|
|
39
|
+
}
|
|
40
|
+
return true;
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
RateLimitGuard = __decorate([
|
|
44
|
+
Injectable(),
|
|
45
|
+
__param(0, Inject(RATE_LIMIT_OPTIONS)),
|
|
46
|
+
__metadata("design:paramtypes", [Object])
|
|
47
|
+
], RateLimitGuard);
|
|
48
|
+
export { RateLimitGuard };
|
|
49
|
+
export class RateLimitModule {
|
|
50
|
+
static forRoot(options) {
|
|
51
|
+
const providers = [
|
|
52
|
+
{ provide: RATE_LIMIT_OPTIONS, useValue: options },
|
|
53
|
+
RateLimitGuard,
|
|
54
|
+
];
|
|
55
|
+
return {
|
|
56
|
+
module: RateLimitModule,
|
|
57
|
+
global: options.global ?? true,
|
|
58
|
+
providers,
|
|
59
|
+
exports: [RateLimitGuard, RATE_LIMIT_OPTIONS],
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=rate-limit.module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rate-limit.module.js","sourceRoot":"","sources":["../../../../backend/src/rate-limit/nestjs/rate-limit.module.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA;;;;GAIG;AACH,OAAO,EACL,aAAa,EACb,MAAM,EACN,UAAU,GAKX,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAGvD,MAAM,CAAC,MAAM,kBAAkB,GAAG,MAAM,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;AAgB5D,IAAM,cAAc,GAApB,MAAM,cAAc;IACgC;IAAzD,YAAyD,OAA8B;QAA9B,YAAO,GAAP,OAAO,CAAuB;IAAG,CAAC;IAE3F,KAAK,CAAC,WAAW,CAAC,OAAyB;QACzC,MAAM,OAAO,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,UAAU,EAAW,CAAC;QAC7D,MAAM,QAAQ,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,WAAW,EAAgB,CAAC;QAEpE,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE;YACpE,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO;YAC7B,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3E,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACxE,CAAC,CAAC;QAEH,KAAK,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YAC/D,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACjC,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;YACtB,MAAM,IAAI,aAAa,CACrB,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,mBAAmB,EAAE,EAAE,EACjE,QAAQ,CAAC,MAAM,CAChB,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;CACF,CAAA;AAzBY,cAAc;IAD1B,UAAU,EAAE;IAEE,WAAA,MAAM,CAAC,kBAAkB,CAAC,CAAA;;GAD5B,cAAc,CAyB1B;;AAED,MAAM,OAAO,eAAe;IAC1B,MAAM,CAAC,OAAO,CAAC,OAA8B;QAC3C,MAAM,SAAS,GAAe;YAC5B,EAAE,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,OAAO,EAAE;YAClD,cAAc;SACf,CAAC;QACF,OAAO;YACL,MAAM,EAAE,eAAe;YACvB,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,IAAI;YAC9B,SAAS;YACT,OAAO,EAAE,CAAC,cAAc,EAAE,kBAAkB,CAAC;SAC9C,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* US-0604 — Node/connect/express-compatibele rate-limit-middleware. Bepaalt de sleutel via een
|
|
3
|
+
* callback, evalueert de limiter en zet de standaard-headers; bij weigering `429` + `Retry-After`.
|
|
4
|
+
* Werkt ook in een Nest-express-app via `app.use(...)`.
|
|
5
|
+
*/
|
|
6
|
+
import type { IncomingMessage, ServerResponse } from 'node:http';
|
|
7
|
+
import type { RateLimiter } from '../core/ports.js';
|
|
8
|
+
export interface RateLimitMiddlewareOptions {
|
|
9
|
+
limiter: RateLimiter;
|
|
10
|
+
/** Leidt de rate-limit-sleutel af uit het request (bv. IP of user-id). */
|
|
11
|
+
keyOf: (req: IncomingMessage) => string;
|
|
12
|
+
failPolicy?: 'open' | 'closed';
|
|
13
|
+
cost?: number;
|
|
14
|
+
}
|
|
15
|
+
export declare function rateLimitMiddleware(options: RateLimitMiddlewareOptions): (req: IncomingMessage, res: ServerResponse, next: () => void) => Promise<void>;
|
|
16
|
+
//# sourceMappingURL=middleware.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../../../../backend/src/rate-limit/nodejs/middleware.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAEjE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD,MAAM,WAAW,0BAA0B;IACzC,OAAO,EAAE,WAAW,CAAC;IACrB,0EAA0E;IAC1E,KAAK,EAAE,CAAC,GAAG,EAAE,eAAe,KAAK,MAAM,CAAC;IACxC,UAAU,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,0BAA0B,IACvD,KAAK,eAAe,EAAE,KAAK,cAAc,EAAE,MAAM,MAAM,IAAI,KAAG,OAAO,CAAC,IAAI,CAAC,CA2B1F"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { enforceRateLimit } from '../core/enforcer.js';
|
|
2
|
+
export function rateLimitMiddleware(options) {
|
|
3
|
+
return async (req, res, next) => {
|
|
4
|
+
const decision = await enforceRateLimit(options.keyOf(req), {
|
|
5
|
+
limiter: options.limiter,
|
|
6
|
+
...(options.failPolicy ? { failPolicy: options.failPolicy } : {}),
|
|
7
|
+
...(options.cost !== undefined ? { cost: options.cost } : {}),
|
|
8
|
+
});
|
|
9
|
+
for (const [header, value] of Object.entries(decision.headers)) {
|
|
10
|
+
res.setHeader(header, value);
|
|
11
|
+
}
|
|
12
|
+
if (decision.allowed) {
|
|
13
|
+
next();
|
|
14
|
+
return;
|
|
15
|
+
}
|
|
16
|
+
res.statusCode = decision.status;
|
|
17
|
+
res.setHeader('Content-Type', 'application/json');
|
|
18
|
+
res.end(JSON.stringify({
|
|
19
|
+
error: {
|
|
20
|
+
code: decision.status === 429 ? 'RATE_LIMITED' : 'STORE_UNAVAILABLE',
|
|
21
|
+
message: decision.status === 429 ? 'Too Many Requests' : 'Service Unavailable',
|
|
22
|
+
},
|
|
23
|
+
}));
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=middleware.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"middleware.js","sourceRoot":"","sources":["../../../../backend/src/rate-limit/nodejs/middleware.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAWvD,MAAM,UAAU,mBAAmB,CAAC,OAAmC;IACrE,OAAO,KAAK,EAAE,GAAoB,EAAE,GAAmB,EAAE,IAAgB,EAAiB,EAAE;QAC1F,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;YAC1D,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACjE,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC9D,CAAC,CAAC;QAEH,KAAK,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YAC/D,GAAG,CAAC,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAC/B,CAAC;QAED,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;YACrB,IAAI,EAAE,CAAC;YACP,OAAO;QACT,CAAC;QAED,GAAG,CAAC,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC;QACjC,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;QAClD,GAAG,CAAC,GAAG,CACL,IAAI,CAAC,SAAS,CAAC;YACb,KAAK,EAAE;gBACL,IAAI,EAAE,QAAQ,CAAC,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,mBAAmB;gBACpE,OAAO,EAAE,QAAQ,CAAC,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,qBAAqB;aAC/E;SACF,CAAC,CACH,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* US-1401 — Testcontainers-bootstrap (Postgres/Redis). Bouwt voort op de persistence-kit-harness voor
|
|
3
|
+
* Postgres en start een wegwerp-Redis via testcontainers. Levert connectie-handles + `reset()` (schone
|
|
4
|
+
* staat tussen tests, zonder herstart) en `stop()` (gegarandeerde opruiming, ook bij een fout tijdens de
|
|
5
|
+
* bootstrap). Container-selectie/images komen uit geïnjecteerde config; geen domeinaannames.
|
|
6
|
+
*
|
|
7
|
+
* `testcontainers` wordt lui geladen; import van deze module vereist Docker pas bij `bootstrapTestInfra`.
|
|
8
|
+
*/
|
|
9
|
+
import { type TestDatabase } from '../../persistence/pg.js';
|
|
10
|
+
import type { Migration } from '../../persistence/index.js';
|
|
11
|
+
export interface PostgresInfraOptions {
|
|
12
|
+
migrations?: Migration[];
|
|
13
|
+
/** Tabellen die `reset()` leegmaakt tussen tests. */
|
|
14
|
+
managedTables?: string[];
|
|
15
|
+
image?: string;
|
|
16
|
+
}
|
|
17
|
+
export interface RedisInfraOptions {
|
|
18
|
+
image?: string;
|
|
19
|
+
}
|
|
20
|
+
export interface TestInfraOptions {
|
|
21
|
+
postgres?: PostgresInfraOptions;
|
|
22
|
+
redis?: RedisInfraOptions;
|
|
23
|
+
}
|
|
24
|
+
export interface RedisHandle {
|
|
25
|
+
uri: string;
|
|
26
|
+
host: string;
|
|
27
|
+
port: number;
|
|
28
|
+
/** FLUSHALL — schone staat tussen tests. */
|
|
29
|
+
reset(): Promise<void>;
|
|
30
|
+
}
|
|
31
|
+
export interface TestInfra {
|
|
32
|
+
postgres?: TestDatabase;
|
|
33
|
+
redis?: RedisHandle;
|
|
34
|
+
/** Zet alle ingeschakelde stores terug naar de basisstaat (US-1401 AC2). */
|
|
35
|
+
reset(): Promise<void>;
|
|
36
|
+
/** Stopt en ruimt alle containers op (US-1401 AC3). */
|
|
37
|
+
stop(): Promise<void>;
|
|
38
|
+
}
|
|
39
|
+
export declare function bootstrapTestInfra(options?: TestInfraOptions): Promise<TestInfra>;
|
|
40
|
+
//# sourceMappingURL=infra-bootstrap.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"infra-bootstrap.d.ts","sourceRoot":"","sources":["../../../../backend/src/test-kit/adapters/infra-bootstrap.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAA+C,KAAK,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACzG,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAE5D,MAAM,WAAW,oBAAoB;IACnC,UAAU,CAAC,EAAE,SAAS,EAAE,CAAC;IACzB,qDAAqD;IACrD,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,oBAAoB,CAAC;IAChC,KAAK,CAAC,EAAE,iBAAiB,CAAC;CAC3B;AAED,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,4CAA4C;IAC5C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,4EAA4E;IAC5E,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,uDAAuD;IACvD,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACvB;AAED,wBAAsB,kBAAkB,CAAC,OAAO,GAAE,gBAAqB,GAAG,OAAO,CAAC,SAAS,CAAC,CAuD3F"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* US-1401 — Testcontainers-bootstrap (Postgres/Redis). Bouwt voort op de persistence-kit-harness voor
|
|
3
|
+
* Postgres en start een wegwerp-Redis via testcontainers. Levert connectie-handles + `reset()` (schone
|
|
4
|
+
* staat tussen tests, zonder herstart) en `stop()` (gegarandeerde opruiming, ook bij een fout tijdens de
|
|
5
|
+
* bootstrap). Container-selectie/images komen uit geïnjecteerde config; geen domeinaannames.
|
|
6
|
+
*
|
|
7
|
+
* `testcontainers` wordt lui geladen; import van deze module vereist Docker pas bij `bootstrapTestInfra`.
|
|
8
|
+
*/
|
|
9
|
+
import { startTestDatabase, postgresContainerFactory } from '../../persistence/pg.js';
|
|
10
|
+
export async function bootstrapTestInfra(options = {}) {
|
|
11
|
+
const stops = [];
|
|
12
|
+
let postgres;
|
|
13
|
+
let redis;
|
|
14
|
+
try {
|
|
15
|
+
if (options.postgres) {
|
|
16
|
+
postgres = await startTestDatabase({
|
|
17
|
+
migrations: options.postgres.migrations ?? [],
|
|
18
|
+
...(options.postgres.managedTables ? { managedTables: options.postgres.managedTables } : {}),
|
|
19
|
+
...(options.postgres.image ? { containerFactory: postgresContainerFactory({ image: options.postgres.image }) } : {}),
|
|
20
|
+
});
|
|
21
|
+
const db = postgres;
|
|
22
|
+
stops.push(() => db.stop());
|
|
23
|
+
}
|
|
24
|
+
if (options.redis) {
|
|
25
|
+
const { GenericContainer, Wait } = await import('testcontainers');
|
|
26
|
+
const container = await new GenericContainer(options.redis.image ?? 'redis:7-alpine')
|
|
27
|
+
.withExposedPorts(6379)
|
|
28
|
+
.withWaitStrategy(Wait.forLogMessage(/Ready to accept connections/))
|
|
29
|
+
.start();
|
|
30
|
+
stops.push(async () => {
|
|
31
|
+
await container.stop();
|
|
32
|
+
});
|
|
33
|
+
const host = container.getHost();
|
|
34
|
+
const port = container.getMappedPort(6379);
|
|
35
|
+
redis = {
|
|
36
|
+
uri: `redis://${host}:${port}`,
|
|
37
|
+
host,
|
|
38
|
+
port,
|
|
39
|
+
reset: async () => {
|
|
40
|
+
await container.exec(['redis-cli', 'FLUSHALL']);
|
|
41
|
+
},
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
catch (error) {
|
|
46
|
+
// Geen halve/lekkende containers achterlaten (AC3).
|
|
47
|
+
for (const stop of stops.reverse())
|
|
48
|
+
await stop().catch(() => undefined);
|
|
49
|
+
throw new Error(`test-kit infra-bootstrap mislukt (is de Docker-daemon bereikbaar?): ${error instanceof Error ? error.message : String(error)}`);
|
|
50
|
+
}
|
|
51
|
+
return {
|
|
52
|
+
...(postgres ? { postgres } : {}),
|
|
53
|
+
...(redis ? { redis } : {}),
|
|
54
|
+
reset: async () => {
|
|
55
|
+
await postgres?.reset();
|
|
56
|
+
await redis?.reset();
|
|
57
|
+
},
|
|
58
|
+
stop: async () => {
|
|
59
|
+
for (const stop of stops.reverse())
|
|
60
|
+
await stop().catch(() => undefined);
|
|
61
|
+
},
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=infra-bootstrap.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"infra-bootstrap.js","sourceRoot":"","sources":["../../../../backend/src/test-kit/adapters/infra-bootstrap.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* US-1404 — Contract-test-harness. Verifieert dat een provider een geïnjecteerd contract nakomt: per
|
|
3
|
+
* interactie status + body (subset-match: extra velden toegestaan, ontbrekende/afwijkende velden falen).
|
|
4
|
+
* Afwijkingen worden precies gerapporteerd (pad + verwacht vs. werkelijk). Contracten zijn geïnjecteerde
|
|
5
|
+
* data; de provider-koppeling is een adapter (bv. de HTTP-test-client).
|
|
6
|
+
*/
|
|
7
|
+
export type ContractMethod = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE';
|
|
8
|
+
export interface Contract {
|
|
9
|
+
name?: string;
|
|
10
|
+
request: {
|
|
11
|
+
method: ContractMethod;
|
|
12
|
+
path: string;
|
|
13
|
+
body?: unknown;
|
|
14
|
+
headers?: Record<string, string>;
|
|
15
|
+
token?: string;
|
|
16
|
+
};
|
|
17
|
+
expect: {
|
|
18
|
+
status: number;
|
|
19
|
+
/** Verwachte (deel)body; extra velden in de response zijn toegestaan. */
|
|
20
|
+
body?: unknown;
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
export interface Deviation {
|
|
24
|
+
path: string;
|
|
25
|
+
expected: unknown;
|
|
26
|
+
actual: unknown;
|
|
27
|
+
}
|
|
28
|
+
export interface ContractResult {
|
|
29
|
+
name: string;
|
|
30
|
+
verified: boolean;
|
|
31
|
+
deviations: Deviation[];
|
|
32
|
+
}
|
|
33
|
+
export interface ContractReport {
|
|
34
|
+
verified: boolean;
|
|
35
|
+
results: ContractResult[];
|
|
36
|
+
}
|
|
37
|
+
/** Structureel provider-contract (de HTTP-test-client voldoet hieraan via `request`). */
|
|
38
|
+
export interface ContractProvider {
|
|
39
|
+
request(method: string, path: string, options?: {
|
|
40
|
+
body?: unknown;
|
|
41
|
+
headers?: Record<string, string>;
|
|
42
|
+
token?: string;
|
|
43
|
+
}): Promise<{
|
|
44
|
+
status: number;
|
|
45
|
+
body: unknown;
|
|
46
|
+
}>;
|
|
47
|
+
}
|
|
48
|
+
export declare function verifyContracts(provider: ContractProvider, contracts: Contract[]): Promise<ContractReport>;
|
|
49
|
+
//# sourceMappingURL=contract.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../../../../backend/src/test-kit/core/contract.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,CAAC;AAEzE,MAAM,WAAW,QAAQ;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,EAAE;QACP,MAAM,EAAE,cAAc,CAAC;QACvB,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,CAAC,EAAE,OAAO,CAAC;QACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACjC,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,MAAM,EAAE;QACN,MAAM,EAAE,MAAM,CAAC;QACf,yEAAyE;QACzE,IAAI,CAAC,EAAE,OAAO,CAAC;KAChB,CAAC;CACH;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,SAAS,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,cAAc,EAAE,CAAC;CAC3B;AAED,yFAAyF;AACzF,MAAM,WAAW,gBAAgB;IAC/B,OAAO,CACL,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAC7E,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;CAC/C;AAED,wBAAsB,eAAe,CACnC,QAAQ,EAAE,gBAAgB,EAC1B,SAAS,EAAE,QAAQ,EAAE,GACpB,OAAO,CAAC,cAAc,CAAC,CAoBzB"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* US-1404 — Contract-test-harness. Verifieert dat een provider een geïnjecteerd contract nakomt: per
|
|
3
|
+
* interactie status + body (subset-match: extra velden toegestaan, ontbrekende/afwijkende velden falen).
|
|
4
|
+
* Afwijkingen worden precies gerapporteerd (pad + verwacht vs. werkelijk). Contracten zijn geïnjecteerde
|
|
5
|
+
* data; de provider-koppeling is een adapter (bv. de HTTP-test-client).
|
|
6
|
+
*/
|
|
7
|
+
export async function verifyContracts(provider, contracts) {
|
|
8
|
+
const results = [];
|
|
9
|
+
for (const contract of contracts) {
|
|
10
|
+
const name = contract.name ?? `${contract.request.method} ${contract.request.path}`;
|
|
11
|
+
const response = await provider.request(contract.request.method, contract.request.path, {
|
|
12
|
+
...(contract.request.body !== undefined ? { body: contract.request.body } : {}),
|
|
13
|
+
...(contract.request.headers ? { headers: contract.request.headers } : {}),
|
|
14
|
+
...(contract.request.token ? { token: contract.request.token } : {}),
|
|
15
|
+
});
|
|
16
|
+
const deviations = [];
|
|
17
|
+
if (response.status !== contract.expect.status) {
|
|
18
|
+
deviations.push({ path: 'status', expected: contract.expect.status, actual: response.status });
|
|
19
|
+
}
|
|
20
|
+
if (contract.expect.body !== undefined) {
|
|
21
|
+
deviations.push(...matchSubset(contract.expect.body, response.body, 'body'));
|
|
22
|
+
}
|
|
23
|
+
results.push({ name, verified: deviations.length === 0, deviations });
|
|
24
|
+
}
|
|
25
|
+
return { verified: results.every((r) => r.verified), results };
|
|
26
|
+
}
|
|
27
|
+
/** Subset-match: elke sleutel/waarde in `expected` moet in `actual` voorkomen; extra velden zijn oké. */
|
|
28
|
+
function matchSubset(expected, actual, path) {
|
|
29
|
+
if (expected !== null && typeof expected === 'object' && !Array.isArray(expected)) {
|
|
30
|
+
if (actual === null || typeof actual !== 'object' || Array.isArray(actual)) {
|
|
31
|
+
return [{ path, expected, actual }];
|
|
32
|
+
}
|
|
33
|
+
const record = actual;
|
|
34
|
+
const deviations = [];
|
|
35
|
+
for (const key of Object.keys(expected)) {
|
|
36
|
+
deviations.push(...matchSubset(expected[key], record[key], `${path}.${key}`));
|
|
37
|
+
}
|
|
38
|
+
return deviations;
|
|
39
|
+
}
|
|
40
|
+
if (Array.isArray(expected)) {
|
|
41
|
+
if (!Array.isArray(actual))
|
|
42
|
+
return [{ path, expected, actual }];
|
|
43
|
+
const deviations = [];
|
|
44
|
+
if (actual.length < expected.length) {
|
|
45
|
+
deviations.push({ path: `${path}.length`, expected: expected.length, actual: actual.length });
|
|
46
|
+
}
|
|
47
|
+
expected.forEach((item, i) => deviations.push(...matchSubset(item, actual[i], `${path}[${i}]`)));
|
|
48
|
+
return deviations;
|
|
49
|
+
}
|
|
50
|
+
return expected === actual ? [] : [{ path, expected, actual }];
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=contract.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contract.js","sourceRoot":"","sources":["../../../../backend/src/test-kit/core/contract.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Foutentaxonomie voor test-kit.
|
|
3
|
+
*/
|
|
4
|
+
export declare class TestKitError extends Error {
|
|
5
|
+
readonly code: string;
|
|
6
|
+
constructor(message: string, code: string);
|
|
7
|
+
}
|
|
8
|
+
/** Opgevraagde factory bestaat niet in de registry (US-1402 AC3). */
|
|
9
|
+
export declare class UnknownFactoryError extends TestKitError {
|
|
10
|
+
constructor(name: string);
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../../backend/src/test-kit/core/errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,qBAAa,YAAa,SAAQ,KAAK;IACrC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;gBACV,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;CAM1C;AAED,qEAAqE;AACrE,qBAAa,mBAAoB,SAAQ,YAAY;gBACvC,IAAI,EAAE,MAAM;CAGzB"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Foutentaxonomie voor test-kit.
|
|
3
|
+
*/
|
|
4
|
+
export class TestKitError extends Error {
|
|
5
|
+
code;
|
|
6
|
+
constructor(message, code) {
|
|
7
|
+
super(message);
|
|
8
|
+
this.name = new.target.name;
|
|
9
|
+
this.code = code;
|
|
10
|
+
Object.setPrototypeOf(this, new.target.prototype);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
/** Opgevraagde factory bestaat niet in de registry (US-1402 AC3). */
|
|
14
|
+
export class UnknownFactoryError extends TestKitError {
|
|
15
|
+
constructor(name) {
|
|
16
|
+
super(`Onbekende factory: "${name}"`, 'UNKNOWN_FACTORY');
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../../backend/src/test-kit/core/errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,OAAO,YAAa,SAAQ,KAAK;IAC5B,IAAI,CAAS;IACtB,YAAY,OAAe,EAAE,IAAY;QACvC,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;QAC5B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACpD,CAAC;CACF;AAED,qEAAqE;AACrE,MAAM,OAAO,mBAAoB,SAAQ,YAAY;IACnD,YAAY,IAAY;QACtB,KAAK,CAAC,uBAAuB,IAAI,GAAG,EAAE,iBAAiB,CAAC,CAAC;IAC3D,CAAC;CACF"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export interface FactoryContext {
|
|
2
|
+
/** 1-gebaseerde, per build oplopende sequence — handig voor unieke velden. */
|
|
3
|
+
seq: number;
|
|
4
|
+
}
|
|
5
|
+
export interface Factory<T> {
|
|
6
|
+
build(overrides?: Partial<T>): T;
|
|
7
|
+
buildList(n: number, overrides?: Partial<T>): T[];
|
|
8
|
+
}
|
|
9
|
+
export declare function defineFactory<T extends object>(builder: (ctx: FactoryContext) => T): Factory<T>;
|
|
10
|
+
export interface FactoryRegistry {
|
|
11
|
+
register<T extends object>(name: string, factory: Factory<T>): void;
|
|
12
|
+
define<T extends object>(name: string, builder: (ctx: FactoryContext) => T): Factory<T>;
|
|
13
|
+
build<T = unknown>(name: string, overrides?: Partial<T>): T;
|
|
14
|
+
buildList<T = unknown>(name: string, n: number, overrides?: Partial<T>): T[];
|
|
15
|
+
has(name: string): boolean;
|
|
16
|
+
}
|
|
17
|
+
export declare function createFactoryRegistry(): FactoryRegistry;
|
|
18
|
+
export interface PersistentFactory<T> {
|
|
19
|
+
create(overrides?: Partial<T>): Promise<T>;
|
|
20
|
+
createList(n: number, overrides?: Partial<T>): Promise<T[]>;
|
|
21
|
+
}
|
|
22
|
+
/** Wikkelt een factory zodat elk gebouwd object via de geïnjecteerde `persist`-functie wordt opgeslagen. */
|
|
23
|
+
export declare function withPersistence<T extends object>(factory: Factory<T>, persist: (item: T) => Promise<T | void>): PersistentFactory<T>;
|
|
24
|
+
//# sourceMappingURL=factories.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"factories.d.ts","sourceRoot":"","sources":["../../../../backend/src/test-kit/core/factories.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,cAAc;IAC7B,8EAA8E;IAC9E,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,OAAO,CAAC,CAAC;IACxB,KAAK,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACjC,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;CACnD;AAED,wBAAgB,aAAa,CAAC,CAAC,SAAS,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,EAAE,cAAc,KAAK,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAU/F;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IACpE,MAAM,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,EAAE,cAAc,KAAK,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IACxF,KAAK,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAC5D,SAAS,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;IAC7E,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;CAC5B;AAED,wBAAgB,qBAAqB,IAAI,eAAe,CAoBvD;AAID,MAAM,WAAW,iBAAiB,CAAC,CAAC;IAClC,MAAM,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAC3C,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;CAC7D;AAED,4GAA4G;AAC5G,wBAAgB,eAAe,CAAC,CAAC,SAAS,MAAM,EAC9C,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,EACnB,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,GACtC,iBAAiB,CAAC,CAAC,CAAC,CActB"}
|