@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,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Foutentaxonomie voor privacy-kit. Foutredenen in export-/erasure-rapporten worden geredigeerd.
|
|
3
|
+
*/
|
|
4
|
+
export class PrivacyError 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
|
+
/** Twee providers met hetzelfde id (US-1201 AC2). */
|
|
14
|
+
export class DuplicateProviderError extends PrivacyError {
|
|
15
|
+
constructor(id) {
|
|
16
|
+
super(`Data-provider met id "${id}" is al geregistreerd`, 'DUPLICATE_PROVIDER');
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
/** Registratie na het afsluiten (sealen) van de registry (US-1201 AC3). */
|
|
20
|
+
export class SealedRegistryError extends PrivacyError {
|
|
21
|
+
constructor() {
|
|
22
|
+
super('Provider-registry is afgesloten (sealed); registratie is niet meer toegestaan', 'REGISTRY_SEALED');
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
/** Redigeert een foutreden zodat er geen payload/secret in een rapport belandt. */
|
|
26
|
+
export function redactReason(input) {
|
|
27
|
+
const text = input instanceof Error ? input.message : String(input);
|
|
28
|
+
return text.replace(/(password|pwd|token|secret|api[-_]?key)\s*[=:]\s*[^\s;,&]+/gi, '$1=***');
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../../backend/src/privacy/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,qDAAqD;AACrD,MAAM,OAAO,sBAAuB,SAAQ,YAAY;IACtD,YAAY,EAAU;QACpB,KAAK,CAAC,yBAAyB,EAAE,uBAAuB,EAAE,oBAAoB,CAAC,CAAC;IAClF,CAAC;CACF;AAED,2EAA2E;AAC3E,MAAM,OAAO,mBAAoB,SAAQ,YAAY;IACnD;QACE,KAAK,CAAC,+EAA+E,EAAE,iBAAiB,CAAC,CAAC;IAC5G,CAAC;CACF;AAED,mFAAmF;AACnF,MAAM,UAAU,YAAY,CAAC,KAAc;IACzC,MAAM,IAAI,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACpE,OAAO,IAAI,CAAC,OAAO,CAAC,8DAA8D,EAAE,QAAQ,CAAC,CAAC;AAChG,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { AuditSink, Clock } from './ports.js';
|
|
2
|
+
import type { ProviderRegistry } from './registry.js';
|
|
3
|
+
export interface ExportManifestEntry {
|
|
4
|
+
providerId: string;
|
|
5
|
+
status: 'covered' | 'failed';
|
|
6
|
+
reason?: string;
|
|
7
|
+
}
|
|
8
|
+
export interface ExportBundle {
|
|
9
|
+
subjectId: string;
|
|
10
|
+
generatedAt: number;
|
|
11
|
+
complete: boolean;
|
|
12
|
+
sections: Record<string, unknown>;
|
|
13
|
+
manifest: ExportManifestEntry[];
|
|
14
|
+
}
|
|
15
|
+
export interface ExportOptions {
|
|
16
|
+
audit?: AuditSink;
|
|
17
|
+
clock?: Clock;
|
|
18
|
+
}
|
|
19
|
+
export declare function exportSubject(registry: ProviderRegistry, subjectId: string, options?: ExportOptions): Promise<ExportBundle>;
|
|
20
|
+
//# sourceMappingURL=export.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"export.d.ts","sourceRoot":"","sources":["../../../../backend/src/privacy/core/export.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEtD,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,SAAS,GAAG,QAAQ,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,QAAQ,EAAE,mBAAmB,EAAE,CAAC;CACjC;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,KAAK,CAAC,EAAE,KAAK,CAAC;CACf;AAED,wBAAsB,aAAa,CACjC,QAAQ,EAAE,gBAAgB,EAC1B,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC,YAAY,CAAC,CAwBvB"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* US-1202 — Export-orkestratie (dataportabiliteit, AVG art. 15/20). Itereert over alle geregistreerde
|
|
3
|
+
* providers, bundelt hun output per sectie en levert een manifest dat volledigheid aantoonbaar maakt.
|
|
4
|
+
* Een falende provider wordt expliciet als `failed` gerapporteerd; de export wordt dan `incomplete`.
|
|
5
|
+
*/
|
|
6
|
+
import { redactReason } from './errors.js';
|
|
7
|
+
export async function exportSubject(registry, subjectId, options = {}) {
|
|
8
|
+
const clock = options.clock ?? Date.now;
|
|
9
|
+
const sections = {};
|
|
10
|
+
const manifest = [];
|
|
11
|
+
let complete = true;
|
|
12
|
+
for (const provider of registry.list()) {
|
|
13
|
+
try {
|
|
14
|
+
sections[provider.id] = await provider.export(subjectId);
|
|
15
|
+
manifest.push({ providerId: provider.id, status: 'covered' });
|
|
16
|
+
}
|
|
17
|
+
catch (error) {
|
|
18
|
+
complete = false;
|
|
19
|
+
manifest.push({ providerId: provider.id, status: 'failed', reason: redactReason(error) });
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
await options.audit?.record({
|
|
23
|
+
action: 'privacy.export',
|
|
24
|
+
subjectId,
|
|
25
|
+
complete,
|
|
26
|
+
meta: { providers: manifest.map((m) => m.providerId) },
|
|
27
|
+
});
|
|
28
|
+
return { subjectId, generatedAt: clock(), complete, sections, manifest };
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=export.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"export.js","sourceRoot":"","sources":["../../../../backend/src/privacy/core/export.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAuB3C,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,QAA0B,EAC1B,SAAiB,EACjB,UAAyB,EAAE;IAE3B,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC;IACxC,MAAM,QAAQ,GAA4B,EAAE,CAAC;IAC7C,MAAM,QAAQ,GAA0B,EAAE,CAAC;IAC3C,IAAI,QAAQ,GAAG,IAAI,CAAC;IAEpB,KAAK,MAAM,QAAQ,IAAI,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC;QACvC,IAAI,CAAC;YACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YACzD,QAAQ,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;QAChE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,QAAQ,GAAG,KAAK,CAAC;YACjB,QAAQ,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC5F,CAAC;IACH,CAAC;IAED,MAAM,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC;QAC1B,MAAM,EAAE,gBAAgB;QACxB,SAAS;QACT,QAAQ;QACR,IAAI,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE;KACvD,CAAC,CAAC;IAEH,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;AAC3E,CAAC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Poorten & types voor de privacy-kit. Data-providers, de consent-store en de audit-sink worden
|
|
3
|
+
* geïnjecteerd; de kit kent geen domeintabellen, PII-velden of bewaartermijnen.
|
|
4
|
+
*/
|
|
5
|
+
/** Strategie waarmee een provider persoonsgegevens heeft gewist. */
|
|
6
|
+
export type EraseStrategy = 'deleted' | 'anonymized';
|
|
7
|
+
export interface EraseResult {
|
|
8
|
+
strategy: EraseStrategy;
|
|
9
|
+
/** Aantal getroffen records. */
|
|
10
|
+
affected: number;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Data-provider-poort (US-1201): een domeinmodule weet hoe het per subject persoonsgegevens
|
|
14
|
+
* exporteert en wist. Wordt door de consumer geïnjecteerd/geregistreerd.
|
|
15
|
+
*/
|
|
16
|
+
export interface DataProvider {
|
|
17
|
+
readonly id: string;
|
|
18
|
+
describe(): string;
|
|
19
|
+
export(subjectId: string): Promise<unknown>;
|
|
20
|
+
erase(subjectId: string): Promise<EraseResult>;
|
|
21
|
+
}
|
|
22
|
+
export interface PrivacyAuditEvent {
|
|
23
|
+
action: string;
|
|
24
|
+
subjectId: string;
|
|
25
|
+
complete: boolean;
|
|
26
|
+
meta?: Record<string, unknown>;
|
|
27
|
+
}
|
|
28
|
+
/** Audit-sink-poort: privacy-kit publiceert hierheen (bv. naar audit-log). */
|
|
29
|
+
export interface AuditSink {
|
|
30
|
+
record(event: PrivacyAuditEvent): Promise<void>;
|
|
31
|
+
}
|
|
32
|
+
export type ConsentStatus = 'granted' | 'withdrawn';
|
|
33
|
+
export interface ConsentRecord {
|
|
34
|
+
subjectId: string;
|
|
35
|
+
purpose: string;
|
|
36
|
+
status: ConsentStatus;
|
|
37
|
+
policyVersion?: string;
|
|
38
|
+
/** ms epoch. */
|
|
39
|
+
timestamp: number;
|
|
40
|
+
}
|
|
41
|
+
/** Append-only consent-store-poort. */
|
|
42
|
+
export interface ConsentStore {
|
|
43
|
+
append(record: ConsentRecord): Promise<void>;
|
|
44
|
+
history(subjectId: string, purpose: string): Promise<ConsentRecord[]>;
|
|
45
|
+
latest(subjectId: string, purpose: string): Promise<ConsentRecord | null>;
|
|
46
|
+
}
|
|
47
|
+
export type Clock = () => number;
|
|
48
|
+
//# sourceMappingURL=ports.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ports.d.ts","sourceRoot":"","sources":["../../../../backend/src/privacy/core/ports.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,oEAAoE;AACpE,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,YAAY,CAAC;AAErD,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,aAAa,CAAC;IACxB,gCAAgC;IAChC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,IAAI,MAAM,CAAC;IACnB,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC5C,KAAK,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;CAChD;AAID,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC;AAED,8EAA8E;AAC9E,MAAM,WAAW,SAAS;IACxB,MAAM,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACjD;AAID,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,WAAW,CAAC;AAEpD,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,aAAa,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,uCAAuC;AACvC,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7C,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;IACtE,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC;CAC3E;AAED,MAAM,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ports.js","sourceRoot":"","sources":["../../../../backend/src/privacy/core/ports.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { DataProvider } from './ports.js';
|
|
2
|
+
export interface ProviderInfo {
|
|
3
|
+
id: string;
|
|
4
|
+
description: string;
|
|
5
|
+
}
|
|
6
|
+
export interface ProviderRegistry {
|
|
7
|
+
register(provider: DataProvider): void;
|
|
8
|
+
/** Sluit de registry af; verdere registraties falen. */
|
|
9
|
+
seal(): void;
|
|
10
|
+
list(): DataProvider[];
|
|
11
|
+
/** Introspectie: id + beschrijving per provider. */
|
|
12
|
+
describe(): ProviderInfo[];
|
|
13
|
+
get(id: string): DataProvider | undefined;
|
|
14
|
+
readonly size: number;
|
|
15
|
+
}
|
|
16
|
+
export declare function createProviderRegistry(initial?: DataProvider[]): ProviderRegistry;
|
|
17
|
+
//# sourceMappingURL=registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../../backend/src/privacy/core/registry.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI,CAAC;IACvC,wDAAwD;IACxD,IAAI,IAAI,IAAI,CAAC;IACb,IAAI,IAAI,YAAY,EAAE,CAAC;IACvB,oDAAoD;IACpD,QAAQ,IAAI,YAAY,EAAE,CAAC;IAC3B,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAAC;IAC1C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,wBAAgB,sBAAsB,CAAC,OAAO,GAAE,YAAY,EAAO,GAAG,gBAAgB,CAwBrF"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* US-1201 — Data-provider-registry. Valideert unieke provider-id's, kan na bootstrap worden afgesloten
|
|
3
|
+
* (sealed) en biedt introspectie zodat aantoonbaar is welke datastores gedekt zijn. Geen domeinkennis.
|
|
4
|
+
*/
|
|
5
|
+
import { DuplicateProviderError, SealedRegistryError } from './errors.js';
|
|
6
|
+
export function createProviderRegistry(initial = []) {
|
|
7
|
+
const providers = new Map();
|
|
8
|
+
let sealed = false;
|
|
9
|
+
const register = (provider) => {
|
|
10
|
+
if (sealed)
|
|
11
|
+
throw new SealedRegistryError();
|
|
12
|
+
if (providers.has(provider.id))
|
|
13
|
+
throw new DuplicateProviderError(provider.id);
|
|
14
|
+
providers.set(provider.id, provider);
|
|
15
|
+
};
|
|
16
|
+
for (const provider of initial)
|
|
17
|
+
register(provider);
|
|
18
|
+
return {
|
|
19
|
+
register,
|
|
20
|
+
seal: () => {
|
|
21
|
+
sealed = true;
|
|
22
|
+
},
|
|
23
|
+
list: () => [...providers.values()],
|
|
24
|
+
describe: () => [...providers.values()].map((p) => ({ id: p.id, description: p.describe() })),
|
|
25
|
+
get: (id) => providers.get(id),
|
|
26
|
+
get size() {
|
|
27
|
+
return providers.size;
|
|
28
|
+
},
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../../backend/src/privacy/core/registry.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAmB1E,MAAM,UAAU,sBAAsB,CAAC,UAA0B,EAAE;IACjE,MAAM,SAAS,GAAG,IAAI,GAAG,EAAwB,CAAC;IAClD,IAAI,MAAM,GAAG,KAAK,CAAC;IAEnB,MAAM,QAAQ,GAAG,CAAC,QAAsB,EAAQ,EAAE;QAChD,IAAI,MAAM;YAAE,MAAM,IAAI,mBAAmB,EAAE,CAAC;QAC5C,IAAI,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YAAE,MAAM,IAAI,sBAAsB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC9E,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;IACvC,CAAC,CAAC;IAEF,KAAK,MAAM,QAAQ,IAAI,OAAO;QAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAEnD,OAAO;QACL,QAAQ;QACR,IAAI,EAAE,GAAG,EAAE;YACT,MAAM,GAAG,IAAI,CAAC;QAChB,CAAC;QACD,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC;QACnC,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAC7F,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;QAC9B,IAAI,IAAI;YACN,OAAO,SAAS,CAAC,IAAI,CAAC;QACxB,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `privacy` kit — domein-loze AVG/GDPR data-subject-rechten: een data-provider-registry (US-1201),
|
|
3
|
+
* export- (US-1202) en erasure-orkestratie (US-1203) over geregistreerde providers, een append-only
|
|
4
|
+
* consent-registry (US-1204) en een analytics-opt-out-flag met privacy-by-default (US-1205). Providers,
|
|
5
|
+
* consent-store en audit-sink worden geïnjecteerd.
|
|
6
|
+
*/
|
|
7
|
+
export { createProviderRegistry, type ProviderRegistry, type ProviderInfo } from './core/registry.js';
|
|
8
|
+
export { exportSubject, type ExportBundle, type ExportManifestEntry, type ExportOptions, } from './core/export.js';
|
|
9
|
+
export { eraseSubject, type ErasureReport, type ErasureReportEntry, type ErasureOptions, } from './core/erasure.js';
|
|
10
|
+
export { createConsentRegistry, analyticsOptOut, type ConsentRegistry, type ConsentOptions, type ConsentStatusResult, type AnalyticsOptOut, } from './core/consent.js';
|
|
11
|
+
export { inMemoryConsentStore } from './adapters/in-memory-consent-store.js';
|
|
12
|
+
export { pgConsentStore, consentMigration, type PgConsentStoreOptions, type SqlExec, } from './adapters/pg-consent-store.js';
|
|
13
|
+
export { auditLogSink, type AuditLogLike } from './adapters/audit-sink.js';
|
|
14
|
+
export type { DataProvider, EraseResult, EraseStrategy, AuditSink, PrivacyAuditEvent, ConsentRecord, ConsentStatus, ConsentStore, } from './core/ports.js';
|
|
15
|
+
export { PrivacyError, DuplicateProviderError, SealedRegistryError } from './core/errors.js';
|
|
16
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../backend/src/privacy/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,sBAAsB,EAAE,KAAK,gBAAgB,EAAE,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGtG,OAAO,EACL,aAAa,EACb,KAAK,YAAY,EACjB,KAAK,mBAAmB,EACxB,KAAK,aAAa,GACnB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACL,YAAY,EACZ,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACvB,KAAK,cAAc,GACpB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACL,qBAAqB,EACrB,eAAe,EACf,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,mBAAmB,EACxB,KAAK,eAAe,GACrB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAC7E,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,KAAK,qBAAqB,EAC1B,KAAK,OAAO,GACb,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAG3E,YAAY,EACV,YAAY,EACZ,WAAW,EACX,aAAa,EACb,SAAS,EACT,iBAAiB,EACjB,aAAa,EACb,aAAa,EACb,YAAY,GACb,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAAE,YAAY,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `privacy` kit — domein-loze AVG/GDPR data-subject-rechten: een data-provider-registry (US-1201),
|
|
3
|
+
* export- (US-1202) en erasure-orkestratie (US-1203) over geregistreerde providers, een append-only
|
|
4
|
+
* consent-registry (US-1204) en een analytics-opt-out-flag met privacy-by-default (US-1205). Providers,
|
|
5
|
+
* consent-store en audit-sink worden geïnjecteerd.
|
|
6
|
+
*/
|
|
7
|
+
// Registry (US-1201)
|
|
8
|
+
export { createProviderRegistry } from './core/registry.js';
|
|
9
|
+
// Export-orkestratie (US-1202)
|
|
10
|
+
export { exportSubject, } from './core/export.js';
|
|
11
|
+
// Erasure-orkestratie (US-1203)
|
|
12
|
+
export { eraseSubject, } from './core/erasure.js';
|
|
13
|
+
// Consent + analytics-opt-out (US-1204/US-1205)
|
|
14
|
+
export { createConsentRegistry, analyticsOptOut, } from './core/consent.js';
|
|
15
|
+
// Adapters
|
|
16
|
+
export { inMemoryConsentStore } from './adapters/in-memory-consent-store.js';
|
|
17
|
+
export { pgConsentStore, consentMigration, } from './adapters/pg-consent-store.js';
|
|
18
|
+
export { auditLogSink } from './adapters/audit-sink.js';
|
|
19
|
+
// Fouten
|
|
20
|
+
export { PrivacyError, DuplicateProviderError, SealedRegistryError } from './core/errors.js';
|
|
21
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../backend/src/privacy/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,qBAAqB;AACrB,OAAO,EAAE,sBAAsB,EAA4C,MAAM,oBAAoB,CAAC;AAEtG,+BAA+B;AAC/B,OAAO,EACL,aAAa,GAId,MAAM,kBAAkB,CAAC;AAE1B,gCAAgC;AAChC,OAAO,EACL,YAAY,GAIb,MAAM,mBAAmB,CAAC;AAE3B,gDAAgD;AAChD,OAAO,EACL,qBAAqB,EACrB,eAAe,GAKhB,MAAM,mBAAmB,CAAC;AAE3B,WAAW;AACX,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAC7E,OAAO,EACL,cAAc,EACd,gBAAgB,GAGjB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,YAAY,EAAqB,MAAM,0BAA0B,CAAC;AAc3E,SAAS;AACT,OAAO,EAAE,YAAY,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* US-0603 — In-memory {@link RateLimitStore} (single-instance/dev). Atomair door Node's single-threaded
|
|
3
|
+
* uitvoering. Geen externe afhankelijkheid. De algoritme-logica is identiek aan de Redis-Lua-varianten.
|
|
4
|
+
*/
|
|
5
|
+
import type { RateLimitStore } from '../core/ports.js';
|
|
6
|
+
export declare function inMemoryRateLimitStore(): RateLimitStore;
|
|
7
|
+
//# sourceMappingURL=in-memory-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"in-memory-store.d.ts","sourceRoot":"","sources":["../../../../backend/src/rate-limit/adapters/in-memory-store.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,cAAc,EAAuD,MAAM,kBAAkB,CAAC;AAY5G,wBAAgB,sBAAsB,IAAI,cAAc,CAuDvD"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
export function inMemoryRateLimitStore() {
|
|
2
|
+
const buckets = new Map();
|
|
3
|
+
const windows = new Map();
|
|
4
|
+
return {
|
|
5
|
+
async consumeTokenBucket(key, params) {
|
|
6
|
+
const { capacity, refillPerMs, cost, nowMs } = params;
|
|
7
|
+
const state = buckets.get(key) ?? { tokens: capacity, ts: nowMs };
|
|
8
|
+
const elapsed = Math.max(0, nowMs - state.ts);
|
|
9
|
+
let tokens = Math.min(capacity, state.tokens + elapsed * refillPerMs);
|
|
10
|
+
let allowed = false;
|
|
11
|
+
if (tokens >= cost) {
|
|
12
|
+
tokens -= cost;
|
|
13
|
+
allowed = true;
|
|
14
|
+
}
|
|
15
|
+
buckets.set(key, { tokens, ts: nowMs });
|
|
16
|
+
return {
|
|
17
|
+
allowed,
|
|
18
|
+
remaining: Math.floor(tokens),
|
|
19
|
+
resetMs: Math.ceil((capacity - tokens) / refillPerMs),
|
|
20
|
+
retryAfterMs: allowed ? 0 : Math.ceil((cost - tokens) / refillPerMs),
|
|
21
|
+
};
|
|
22
|
+
},
|
|
23
|
+
async consumeSlidingWindow(key, params) {
|
|
24
|
+
const { limit, windowMs, cost, nowMs } = params;
|
|
25
|
+
const nominal = Math.floor(nowMs / windowMs) * windowMs;
|
|
26
|
+
let state = windows.get(key) ?? { start: nominal, cur: 0, prev: 0 };
|
|
27
|
+
if (state.start !== nominal) {
|
|
28
|
+
state = { start: nominal, cur: 0, prev: nominal - state.start === windowMs ? state.cur : 0 };
|
|
29
|
+
}
|
|
30
|
+
const elapsed = nowMs - nominal;
|
|
31
|
+
const weight = (windowMs - elapsed) / windowMs;
|
|
32
|
+
let weighted = state.prev * weight + state.cur;
|
|
33
|
+
let allowed = false;
|
|
34
|
+
if (weighted + cost <= limit) {
|
|
35
|
+
state.cur += cost;
|
|
36
|
+
weighted += cost;
|
|
37
|
+
allowed = true;
|
|
38
|
+
}
|
|
39
|
+
windows.set(key, state);
|
|
40
|
+
const resetMs = Math.ceil(windowMs - elapsed);
|
|
41
|
+
return {
|
|
42
|
+
allowed,
|
|
43
|
+
remaining: Math.max(0, Math.floor(limit - weighted)),
|
|
44
|
+
resetMs,
|
|
45
|
+
retryAfterMs: allowed ? 0 : resetMs,
|
|
46
|
+
};
|
|
47
|
+
},
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=in-memory-store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"in-memory-store.js","sourceRoot":"","sources":["../../../../backend/src/rate-limit/adapters/in-memory-store.ts"],"names":[],"mappings":"AAgBA,MAAM,UAAU,sBAAsB;IACpC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC1C,MAAM,OAAO,GAAG,IAAI,GAAG,EAAkB,CAAC;IAE1C,OAAO;QACL,KAAK,CAAC,kBAAkB,CAAC,GAAW,EAAE,MAAyB;YAC7D,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC;YACtD,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC;YAClE,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC;YAC9C,IAAI,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,GAAG,OAAO,GAAG,WAAW,CAAC,CAAC;YAEtE,IAAI,OAAO,GAAG,KAAK,CAAC;YACpB,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;gBACnB,MAAM,IAAI,IAAI,CAAC;gBACf,OAAO,GAAG,IAAI,CAAC;YACjB,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;YAExC,OAAO;gBACL,OAAO;gBACP,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;gBAC7B,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,GAAG,MAAM,CAAC,GAAG,WAAW,CAAC;gBACrD,YAAY,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,GAAG,WAAW,CAAC;aACrE,CAAC;QACJ,CAAC;QAED,KAAK,CAAC,oBAAoB,CAAC,GAAW,EAAE,MAA2B;YACjE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC;YAChD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,QAAQ,CAAC,GAAG,QAAQ,CAAC;YACxD,IAAI,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;YACpE,IAAI,KAAK,CAAC,KAAK,KAAK,OAAO,EAAE,CAAC;gBAC5B,KAAK,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,GAAG,KAAK,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/F,CAAC;YAED,MAAM,OAAO,GAAG,KAAK,GAAG,OAAO,CAAC;YAChC,MAAM,MAAM,GAAG,CAAC,QAAQ,GAAG,OAAO,CAAC,GAAG,QAAQ,CAAC;YAC/C,IAAI,QAAQ,GAAG,KAAK,CAAC,IAAI,GAAG,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC;YAE/C,IAAI,OAAO,GAAG,KAAK,CAAC;YACpB,IAAI,QAAQ,GAAG,IAAI,IAAI,KAAK,EAAE,CAAC;gBAC7B,KAAK,CAAC,GAAG,IAAI,IAAI,CAAC;gBAClB,QAAQ,IAAI,IAAI,CAAC;gBACjB,OAAO,GAAG,IAAI,CAAC;YACjB,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YAExB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,CAAC;YAC9C,OAAO;gBACL,OAAO;gBACP,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,QAAQ,CAAC,CAAC;gBACpD,OAAO;gBACP,YAAY,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO;aACpC,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { RateLimitStore } from '../core/ports.js';
|
|
2
|
+
/** Minimale Redis-client-vorm (compatibel met ioredis' `eval`). */
|
|
3
|
+
export interface RedisLike {
|
|
4
|
+
eval(script: string, numKeys: number, ...args: (string | number)[]): Promise<unknown>;
|
|
5
|
+
}
|
|
6
|
+
export interface RedisRateLimitStoreOptions {
|
|
7
|
+
/** Prefix voor alle sleutels. Default `rl:`. */
|
|
8
|
+
keyPrefix?: string;
|
|
9
|
+
}
|
|
10
|
+
export declare function redisRateLimitStore(client: RedisLike, options?: RedisRateLimitStoreOptions): RateLimitStore;
|
|
11
|
+
//# sourceMappingURL=redis-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"redis-store.d.ts","sourceRoot":"","sources":["../../../../backend/src/rate-limit/adapters/redis-store.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,cAAc,EAIf,MAAM,kBAAkB,CAAC;AAE1B,mEAAmE;AACnE,MAAM,WAAW,SAAS;IACxB,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACvF;AA4DD,MAAM,WAAW,0BAA0B;IACzC,gDAAgD;IAChD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,SAAS,EACjB,OAAO,GAAE,0BAA+B,GACvC,cAAc,CA+BhB"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* US-0603 — Redis {@link RateLimitStore} (gedistribueerd). Gebruikt Lua-scripts zodat lezen +
|
|
3
|
+
* bijwerken van de teller atomair over instances gebeurt (geen race/dubbeltelling). Accepteert een
|
|
4
|
+
* minimale `RedisLike`-client (bv. ioredis) zodat de kit niet hard aan één redis-lib hangt. Bij een
|
|
5
|
+
* store-fout wordt een geredigeerde {@link StoreUnavailableError} geworpen (geen connectiestring).
|
|
6
|
+
*/
|
|
7
|
+
import { StoreUnavailableError } from '../core/errors.js';
|
|
8
|
+
// Retourneert {allowed, remaining, resetMs, retryAfterMs} — atomair.
|
|
9
|
+
const TOKEN_BUCKET_LUA = `
|
|
10
|
+
local key = KEYS[1]
|
|
11
|
+
local capacity = tonumber(ARGV[1])
|
|
12
|
+
local refill = tonumber(ARGV[2])
|
|
13
|
+
local cost = tonumber(ARGV[3])
|
|
14
|
+
local now = tonumber(ARGV[4])
|
|
15
|
+
local ttl = tonumber(ARGV[5])
|
|
16
|
+
local data = redis.call('HMGET', key, 'tokens', 'ts')
|
|
17
|
+
local tokens = tonumber(data[1])
|
|
18
|
+
local ts = tonumber(data[2])
|
|
19
|
+
if tokens == nil then tokens = capacity; ts = now end
|
|
20
|
+
local elapsed = now - ts
|
|
21
|
+
if elapsed < 0 then elapsed = 0 end
|
|
22
|
+
tokens = math.min(capacity, tokens + elapsed * refill)
|
|
23
|
+
local allowed = 0
|
|
24
|
+
if tokens >= cost then tokens = tokens - cost; allowed = 1 end
|
|
25
|
+
redis.call('HSET', key, 'tokens', tokens, 'ts', now)
|
|
26
|
+
redis.call('PEXPIRE', key, ttl)
|
|
27
|
+
local retry = 0
|
|
28
|
+
if allowed == 0 then retry = math.ceil((cost - tokens) / refill) end
|
|
29
|
+
local reset = math.ceil((capacity - tokens) / refill)
|
|
30
|
+
return { allowed, math.floor(tokens), reset, retry }
|
|
31
|
+
`;
|
|
32
|
+
const SLIDING_WINDOW_LUA = `
|
|
33
|
+
local key = KEYS[1]
|
|
34
|
+
local limit = tonumber(ARGV[1])
|
|
35
|
+
local window = tonumber(ARGV[2])
|
|
36
|
+
local cost = tonumber(ARGV[3])
|
|
37
|
+
local now = tonumber(ARGV[4])
|
|
38
|
+
local ttl = tonumber(ARGV[5])
|
|
39
|
+
local nominal = math.floor(now / window) * window
|
|
40
|
+
local d = redis.call('HMGET', key, 'start', 'cur', 'prev')
|
|
41
|
+
local start = tonumber(d[1])
|
|
42
|
+
local cur = tonumber(d[2])
|
|
43
|
+
local prev = tonumber(d[3])
|
|
44
|
+
if start == nil then start = nominal; cur = 0; prev = 0 end
|
|
45
|
+
if start ~= nominal then
|
|
46
|
+
if nominal - start == window then prev = cur else prev = 0 end
|
|
47
|
+
cur = 0
|
|
48
|
+
start = nominal
|
|
49
|
+
end
|
|
50
|
+
local elapsed = now - nominal
|
|
51
|
+
local weight = (window - elapsed) / window
|
|
52
|
+
local weighted = prev * weight + cur
|
|
53
|
+
local allowed = 0
|
|
54
|
+
if weighted + cost <= limit then cur = cur + cost; weighted = weighted + cost; allowed = 1 end
|
|
55
|
+
redis.call('HSET', key, 'start', start, 'cur', cur, 'prev', prev)
|
|
56
|
+
redis.call('PEXPIRE', key, ttl)
|
|
57
|
+
local remaining = math.floor(limit - weighted)
|
|
58
|
+
if remaining < 0 then remaining = 0 end
|
|
59
|
+
local reset = math.ceil(window - elapsed)
|
|
60
|
+
local retry = 0
|
|
61
|
+
if allowed == 0 then retry = reset end
|
|
62
|
+
return { allowed, remaining, reset, retry }
|
|
63
|
+
`;
|
|
64
|
+
export function redisRateLimitStore(client, options = {}) {
|
|
65
|
+
const prefix = options.keyPrefix ?? 'rl:';
|
|
66
|
+
const run = async (script, key, args) => {
|
|
67
|
+
let raw;
|
|
68
|
+
try {
|
|
69
|
+
raw = await client.eval(script, 1, prefix + key, ...args);
|
|
70
|
+
}
|
|
71
|
+
catch {
|
|
72
|
+
throw new StoreUnavailableError();
|
|
73
|
+
}
|
|
74
|
+
const arr = raw;
|
|
75
|
+
return {
|
|
76
|
+
allowed: Number(arr[0]) === 1,
|
|
77
|
+
remaining: Number(arr[1]),
|
|
78
|
+
resetMs: Number(arr[2]),
|
|
79
|
+
retryAfterMs: Number(arr[3]),
|
|
80
|
+
};
|
|
81
|
+
};
|
|
82
|
+
return {
|
|
83
|
+
consumeTokenBucket: (key, p) => run(TOKEN_BUCKET_LUA, key, [
|
|
84
|
+
p.capacity,
|
|
85
|
+
p.refillPerMs,
|
|
86
|
+
p.cost,
|
|
87
|
+
p.nowMs,
|
|
88
|
+
Math.ceil(p.capacity / p.refillPerMs),
|
|
89
|
+
]),
|
|
90
|
+
consumeSlidingWindow: (key, p) => run(SLIDING_WINDOW_LUA, key, [p.limit, p.windowMs, p.cost, p.nowMs, p.windowMs * 2]),
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
//# sourceMappingURL=redis-store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"redis-store.js","sourceRoot":"","sources":["../../../../backend/src/rate-limit/adapters/redis-store.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAa1D,qEAAqE;AACrE,MAAM,gBAAgB,GAAG;;;;;;;;;;;;;;;;;;;;;;CAsBxB,CAAC;AAEF,MAAM,kBAAkB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+B1B,CAAC;AAOF,MAAM,UAAU,mBAAmB,CACjC,MAAiB,EACjB,UAAsC,EAAE;IAExC,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,IAAI,KAAK,CAAC;IAE1C,MAAM,GAAG,GAAG,KAAK,EAAE,MAAc,EAAE,GAAW,EAAE,IAAc,EAAwB,EAAE;QACtF,IAAI,GAAY,CAAC;QACjB,IAAI,CAAC;YACH,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;QAC5D,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,qBAAqB,EAAE,CAAC;QACpC,CAAC;QACD,MAAM,GAAG,GAAG,GAAuC,CAAC;QACpD,OAAO;YACL,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YAC7B,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACzB,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACvB,YAAY,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;SAC7B,CAAC;IACJ,CAAC,CAAC;IAEF,OAAO;QACL,kBAAkB,EAAE,CAAC,GAAW,EAAE,CAAoB,EAAE,EAAE,CACxD,GAAG,CAAC,gBAAgB,EAAE,GAAG,EAAE;YACzB,CAAC,CAAC,QAAQ;YACV,CAAC,CAAC,WAAW;YACb,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,KAAK;YACP,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,WAAW,CAAC;SACtC,CAAC;QACJ,oBAAoB,EAAE,CAAC,GAAW,EAAE,CAAsB,EAAE,EAAE,CAC5D,GAAG,CAAC,kBAAkB,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;KACvF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* US-0604 — Framework-agnostische enforcement-kern. Evalueert een limiter voor een sleutel en levert
|
|
3
|
+
* een beslissing + gestandaardiseerde headers (`X-RateLimit-*`, en bij weigering `Retry-After`).
|
|
4
|
+
* Bij een store-fout volgt het geconfigureerde fail-beleid (fail-open of fail-closed) — nooit
|
|
5
|
+
* onbepaald gedrag, en zonder secret-/connectie-details te lekken.
|
|
6
|
+
*/
|
|
7
|
+
import type { RateLimitResult, RateLimiter } from './ports.js';
|
|
8
|
+
export interface RateLimitDecision {
|
|
9
|
+
allowed: boolean;
|
|
10
|
+
status: number;
|
|
11
|
+
headers: Record<string, string>;
|
|
12
|
+
result?: RateLimitResult;
|
|
13
|
+
}
|
|
14
|
+
export interface EnforceOptions {
|
|
15
|
+
limiter: RateLimiter;
|
|
16
|
+
/** `open` laat door bij store-fout, `closed` weigert (503). Default `closed`. */
|
|
17
|
+
failPolicy?: 'open' | 'closed';
|
|
18
|
+
cost?: number;
|
|
19
|
+
}
|
|
20
|
+
export declare function enforceRateLimit(key: string, options: EnforceOptions): Promise<RateLimitDecision>;
|
|
21
|
+
/** Bouwt de informatieve `X-RateLimit-*`-headers uit een resultaat. */
|
|
22
|
+
export declare function rateLimitHeaders(result: RateLimitResult): Record<string, string>;
|
|
23
|
+
//# sourceMappingURL=enforcer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"enforcer.d.ts","sourceRoot":"","sources":["../../../../backend/src/rate-limit/core/enforcer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE/D,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,MAAM,CAAC,EAAE,eAAe,CAAC;CAC1B;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,WAAW,CAAC;IACrB,iFAAiF;IACjF,UAAU,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAgBvG;AAED,uEAAuE;AACvE,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAMhF"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export async function enforceRateLimit(key, options) {
|
|
2
|
+
try {
|
|
3
|
+
const result = await options.limiter.consume(key, options.cost);
|
|
4
|
+
const headers = rateLimitHeaders(result);
|
|
5
|
+
if (result.allowed) {
|
|
6
|
+
return { allowed: true, status: 200, headers, result };
|
|
7
|
+
}
|
|
8
|
+
headers['Retry-After'] = String(Math.max(1, Math.ceil(result.retryAfterMs / 1000)));
|
|
9
|
+
return { allowed: false, status: 429, headers, result };
|
|
10
|
+
}
|
|
11
|
+
catch {
|
|
12
|
+
// Store onbereikbaar → fail-beleid (geen details lekken).
|
|
13
|
+
if ((options.failPolicy ?? 'closed') === 'open') {
|
|
14
|
+
return { allowed: true, status: 200, headers: {} };
|
|
15
|
+
}
|
|
16
|
+
return { allowed: false, status: 503, headers: { 'Retry-After': '1' } };
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
/** Bouwt de informatieve `X-RateLimit-*`-headers uit een resultaat. */
|
|
20
|
+
export function rateLimitHeaders(result) {
|
|
21
|
+
return {
|
|
22
|
+
'X-RateLimit-Limit': String(result.limit),
|
|
23
|
+
'X-RateLimit-Remaining': String(Math.max(0, result.remaining)),
|
|
24
|
+
'X-RateLimit-Reset': String(Math.max(0, Math.ceil(result.resetMs / 1000))),
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=enforcer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"enforcer.js","sourceRoot":"","sources":["../../../../backend/src/rate-limit/core/enforcer.ts"],"names":[],"mappings":"AAsBA,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,GAAW,EAAE,OAAuB;IACzE,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;QAChE,MAAM,OAAO,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;QACzC,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;QACzD,CAAC;QACD,OAAO,CAAC,aAAa,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACpF,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IAC1D,CAAC;IAAC,MAAM,CAAC;QACP,0DAA0D;QAC1D,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,QAAQ,CAAC,KAAK,MAAM,EAAE,CAAC;YAChD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;QACrD,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,aAAa,EAAE,GAAG,EAAE,EAAE,CAAC;IAC1E,CAAC;AACH,CAAC;AAED,uEAAuE;AACvE,MAAM,UAAU,gBAAgB,CAAC,MAAuB;IACtD,OAAO;QACL,mBAAmB,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;QACzC,uBAAuB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;QAC9D,mBAAmB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC;KAC3E,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Foutentaxonomie voor rate-limit. Config-fouten benoemen de ongeldige waarde; store-fouten lekken
|
|
3
|
+
* nooit een connectiestring of secret.
|
|
4
|
+
*/
|
|
5
|
+
export declare class RateLimitError extends Error {
|
|
6
|
+
readonly code: string;
|
|
7
|
+
constructor(message: string, code: string);
|
|
8
|
+
}
|
|
9
|
+
/** Ongeldige/ontbrekende limiet-config (US-0601/US-0602 AC3). Faalt fail-fast, nooit "onbeperkt". */
|
|
10
|
+
export declare class RateLimitConfigError extends RateLimitError {
|
|
11
|
+
constructor(field: string, value: unknown);
|
|
12
|
+
}
|
|
13
|
+
/** Store tijdelijk onbereikbaar (US-0603/US-0604 AC3). Bevat geen connectie-/secret-details. */
|
|
14
|
+
export declare class StoreUnavailableError extends RateLimitError {
|
|
15
|
+
constructor();
|
|
16
|
+
}
|
|
17
|
+
/** Bewaakt dat een numerieke config-waarde positief is; gooit anders {@link RateLimitConfigError}. */
|
|
18
|
+
export declare function assertPositive(field: string, value: number): void;
|
|
19
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../../backend/src/rate-limit/core/errors.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,qBAAa,cAAe,SAAQ,KAAK;IACvC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;gBACV,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;CAM1C;AAED,qGAAqG;AACrG,qBAAa,oBAAqB,SAAQ,cAAc;gBAC1C,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO;CAG1C;AAED,gGAAgG;AAChG,qBAAa,qBAAsB,SAAQ,cAAc;;CAIxD;AAED,sGAAsG;AACtG,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAIjE"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Foutentaxonomie voor rate-limit. Config-fouten benoemen de ongeldige waarde; store-fouten lekken
|
|
3
|
+
* nooit een connectiestring of secret.
|
|
4
|
+
*/
|
|
5
|
+
export class RateLimitError extends Error {
|
|
6
|
+
code;
|
|
7
|
+
constructor(message, code) {
|
|
8
|
+
super(message);
|
|
9
|
+
this.name = new.target.name;
|
|
10
|
+
this.code = code;
|
|
11
|
+
Object.setPrototypeOf(this, new.target.prototype);
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
/** Ongeldige/ontbrekende limiet-config (US-0601/US-0602 AC3). Faalt fail-fast, nooit "onbeperkt". */
|
|
15
|
+
export class RateLimitConfigError extends RateLimitError {
|
|
16
|
+
constructor(field, value) {
|
|
17
|
+
super(`Ongeldige rate-limit-config: "${field}" moet positief zijn (kreeg ${String(value)})`, 'RATE_LIMIT_CONFIG');
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
/** Store tijdelijk onbereikbaar (US-0603/US-0604 AC3). Bevat geen connectie-/secret-details. */
|
|
21
|
+
export class StoreUnavailableError extends RateLimitError {
|
|
22
|
+
constructor() {
|
|
23
|
+
super('Rate-limit-store is niet bereikbaar', 'STORE_UNAVAILABLE');
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
/** Bewaakt dat een numerieke config-waarde positief is; gooit anders {@link RateLimitConfigError}. */
|
|
27
|
+
export function assertPositive(field, value) {
|
|
28
|
+
if (typeof value !== 'number' || !Number.isFinite(value) || value <= 0) {
|
|
29
|
+
throw new RateLimitConfigError(field, value);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../../backend/src/rate-limit/core/errors.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,OAAO,cAAe,SAAQ,KAAK;IAC9B,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,qGAAqG;AACrG,MAAM,OAAO,oBAAqB,SAAQ,cAAc;IACtD,YAAY,KAAa,EAAE,KAAc;QACvC,KAAK,CAAC,iCAAiC,KAAK,+BAA+B,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,mBAAmB,CAAC,CAAC;IACpH,CAAC;CACF;AAED,gGAAgG;AAChG,MAAM,OAAO,qBAAsB,SAAQ,cAAc;IACvD;QACE,KAAK,CAAC,qCAAqC,EAAE,mBAAmB,CAAC,CAAC;IACpE,CAAC;CACF;AAED,sGAAsG;AACtG,MAAM,UAAU,cAAc,CAAC,KAAa,EAAE,KAAa;IACzD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;QACvE,MAAM,IAAI,oBAAoB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAC/C,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Poorten & types voor de rate-limit-kit. Limieten per route, de store-adapter en de sleutel-afleiding
|
|
3
|
+
* worden geïnjecteerd; de kit bevat geen domeinkennis.
|
|
4
|
+
*/
|
|
5
|
+
export type Clock = () => number;
|
|
6
|
+
/** Uitkomst van een rate-limit-evaluatie. */
|
|
7
|
+
export interface RateLimitResult {
|
|
8
|
+
allowed: boolean;
|
|
9
|
+
limit: number;
|
|
10
|
+
/** Resterende capaciteit/requests (afgerond naar beneden). */
|
|
11
|
+
remaining: number;
|
|
12
|
+
/** ms tot de teller reset / de bucket weer vol is. */
|
|
13
|
+
resetMs: number;
|
|
14
|
+
/** ms tot de volgende request is toegestaan (0 als toegestaan). */
|
|
15
|
+
retryAfterMs: number;
|
|
16
|
+
}
|
|
17
|
+
/** Resultaat van een atomaire store-operatie (zonder `limit`; de limiter vult die aan). */
|
|
18
|
+
export interface StoreResult {
|
|
19
|
+
allowed: boolean;
|
|
20
|
+
remaining: number;
|
|
21
|
+
resetMs: number;
|
|
22
|
+
retryAfterMs: number;
|
|
23
|
+
}
|
|
24
|
+
export interface TokenBucketParams {
|
|
25
|
+
capacity: number;
|
|
26
|
+
/** Tokens die per milliseconde worden bijgevuld. */
|
|
27
|
+
refillPerMs: number;
|
|
28
|
+
cost: number;
|
|
29
|
+
nowMs: number;
|
|
30
|
+
}
|
|
31
|
+
export interface SlidingWindowParams {
|
|
32
|
+
limit: number;
|
|
33
|
+
windowMs: number;
|
|
34
|
+
cost: number;
|
|
35
|
+
nowMs: number;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Store-abstractie (US-0603): voert de atomaire teller-/bucket-operaties uit. Adapters: in-memory
|
|
39
|
+
* (single-instance) en Redis (gedistribueerd, atomair via Lua).
|
|
40
|
+
*/
|
|
41
|
+
export interface RateLimitStore {
|
|
42
|
+
consumeTokenBucket(key: string, params: TokenBucketParams): Promise<StoreResult>;
|
|
43
|
+
consumeSlidingWindow(key: string, params: SlidingWindowParams): Promise<StoreResult>;
|
|
44
|
+
}
|
|
45
|
+
/** Een geconfigureerde limiter over een store; deelbaar over algoritmen (US-0601/US-0602). */
|
|
46
|
+
export interface RateLimiter {
|
|
47
|
+
readonly limit: number;
|
|
48
|
+
consume(key: string, cost?: number): Promise<RateLimitResult>;
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=ports.d.ts.map
|