@c15t/backend 0.0.1-rc.10
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/.turbo/turbo-build.log +11 -0
- package/.turbo/turbo-check-types.log +5 -0
- package/.turbo/turbo-fmt.log +7 -0
- package/.turbo/turbo-lint.log +6 -0
- package/.turbo/turbo-test.log +26 -0
- package/README-next.md +223 -0
- package/README.md +164 -0
- package/dist/api/call.d.ts +176 -0
- package/dist/api/call.d.ts.map +1 -0
- package/dist/api/index.d.ts +935 -0
- package/dist/api/index.d.ts.map +1 -0
- package/dist/api/middlewares/index.d.ts +39 -0
- package/dist/api/middlewares/index.d.ts.map +1 -0
- package/dist/api/middlewares/origin-check.d.ts +82 -0
- package/dist/api/middlewares/origin-check.d.ts.map +1 -0
- package/dist/api/middlewares/validate-context.d.ts +38 -0
- package/dist/api/middlewares/validate-context.d.ts.map +1 -0
- package/dist/api/routes/__tests__/consent.test.d.ts +2 -0
- package/dist/api/routes/__tests__/consent.test.d.ts.map +1 -0
- package/dist/api/routes/__tests__/status.test.d.ts +2 -0
- package/dist/api/routes/__tests__/status.test.d.ts.map +1 -0
- package/dist/api/routes/error.d.ts +57 -0
- package/dist/api/routes/error.d.ts.map +1 -0
- package/dist/api/routes/generate-consent-receipt.d.ts +130 -0
- package/dist/api/routes/generate-consent-receipt.d.ts.map +1 -0
- package/dist/api/routes/get-consent-history.d.ts +133 -0
- package/dist/api/routes/get-consent-history.d.ts.map +1 -0
- package/dist/api/routes/get-consent-policy.d.ts +164 -0
- package/dist/api/routes/get-consent-policy.d.ts.map +1 -0
- package/dist/api/routes/get-consent.d.ts +148 -0
- package/dist/api/routes/get-consent.d.ts.map +1 -0
- package/dist/api/routes/index.d.ts +339 -0
- package/dist/api/routes/index.d.ts.map +1 -0
- package/dist/api/routes/ok.d.ts +87 -0
- package/dist/api/routes/ok.d.ts.map +1 -0
- package/dist/api/routes/set-consent.d.ts +245 -0
- package/dist/api/routes/set-consent.d.ts.map +1 -0
- package/dist/api/routes/show-consent-banner.d.ts +127 -0
- package/dist/api/routes/show-consent-banner.d.ts.map +1 -0
- package/dist/api/routes/status.d.ts +61 -0
- package/dist/api/routes/status.d.ts.map +1 -0
- package/dist/api/routes/verify-consent.d.ts +179 -0
- package/dist/api/routes/verify-consent.d.ts.map +1 -0
- package/dist/api/routes/withdraw-consent.d.ts +194 -0
- package/dist/api/routes/withdraw-consent.d.ts.map +1 -0
- package/dist/api/to-endpoints.d.ts +35 -0
- package/dist/api/to-endpoints.d.ts.map +1 -0
- package/dist/client/index.cjs +139 -0
- package/dist/client/index.d.ts +203 -0
- package/dist/client/index.d.ts.map +1 -0
- package/dist/client/index.js +106 -0
- package/dist/client/types.d.ts +431 -0
- package/dist/client/types.d.ts.map +1 -0
- package/dist/core.d.ts +124 -0
- package/dist/core.d.ts.map +1 -0
- package/dist/core.test.d.ts +2 -0
- package/dist/core.test.d.ts.map +1 -0
- package/dist/db/adapters/drizzle-adapter/drizzle-adapter.d.ts +122 -0
- package/dist/db/adapters/drizzle-adapter/drizzle-adapter.d.ts.map +1 -0
- package/dist/db/adapters/drizzle-adapter/index.d.ts +2 -0
- package/dist/db/adapters/drizzle-adapter/index.d.ts.map +1 -0
- package/dist/db/adapters/drizzle.cjs +1531 -0
- package/dist/db/adapters/drizzle.js +1489 -0
- package/dist/db/adapters/kysely-adapter/dialect.d.ts +72 -0
- package/dist/db/adapters/kysely-adapter/dialect.d.ts.map +1 -0
- package/dist/db/adapters/kysely-adapter/index.d.ts +4 -0
- package/dist/db/adapters/kysely-adapter/index.d.ts.map +1 -0
- package/dist/db/adapters/kysely-adapter/kysely-adapter.d.ts +98 -0
- package/dist/db/adapters/kysely-adapter/kysely-adapter.d.ts.map +1 -0
- package/dist/db/adapters/kysely-adapter/types.d.ts +281 -0
- package/dist/db/adapters/kysely-adapter/types.d.ts.map +1 -0
- package/dist/db/adapters/kysely.cjs +1551 -0
- package/dist/db/adapters/kysely.js +1508 -0
- package/dist/db/adapters/memory-adapter/index.d.ts +2 -0
- package/dist/db/adapters/memory-adapter/index.d.ts.map +1 -0
- package/dist/db/adapters/memory-adapter/memory-adapter.d.ts +56 -0
- package/dist/db/adapters/memory-adapter/memory-adapter.d.ts.map +1 -0
- package/dist/db/adapters/memory.cjs +1391 -0
- package/dist/db/adapters/memory.js +1349 -0
- package/dist/db/adapters/prisma-adapter/index.d.ts +2 -0
- package/dist/db/adapters/prisma-adapter/index.d.ts.map +1 -0
- package/dist/db/adapters/prisma-adapter/prisma-adapter.d.ts +143 -0
- package/dist/db/adapters/prisma-adapter/prisma-adapter.d.ts.map +1 -0
- package/dist/db/adapters/prisma.cjs +1503 -0
- package/dist/db/adapters/prisma.js +1461 -0
- package/dist/db/adapters/types.d.ts +154 -0
- package/dist/db/adapters/types.d.ts.map +1 -0
- package/dist/db/adapters/utils.d.ts +36 -0
- package/dist/db/adapters/utils.d.ts.map +1 -0
- package/dist/db/core/fields/field-factory.d.ts +383 -0
- package/dist/db/core/fields/field-factory.d.ts.map +1 -0
- package/dist/db/core/fields/field-inference.d.ts +218 -0
- package/dist/db/core/fields/field-inference.d.ts.map +1 -0
- package/dist/db/core/fields/field-options-integration.d.ts +90 -0
- package/dist/db/core/fields/field-options-integration.d.ts.map +1 -0
- package/dist/db/core/fields/field-types.d.ts +182 -0
- package/dist/db/core/fields/field-types.d.ts.map +1 -0
- package/dist/db/core/fields/id-generator.d.ts +19 -0
- package/dist/db/core/fields/id-generator.d.ts.map +1 -0
- package/dist/db/core/fields/index.d.ts +8 -0
- package/dist/db/core/fields/index.d.ts.map +1 -0
- package/dist/db/core/fields/superjson-utils.d.ts +34 -0
- package/dist/db/core/fields/superjson-utils.d.ts.map +1 -0
- package/dist/db/core/fields/zod-fields.d.ts +1011 -0
- package/dist/db/core/fields/zod-fields.d.ts.map +1 -0
- package/dist/db/core/get-schema.d.ts +36 -0
- package/dist/db/core/get-schema.d.ts.map +1 -0
- package/dist/db/core/types.d.ts +41 -0
- package/dist/db/core/types.d.ts.map +1 -0
- package/dist/db/create-registry.d.ts +760 -0
- package/dist/db/create-registry.d.ts.map +1 -0
- package/dist/db/hooks/create-hooks.d.ts +32 -0
- package/dist/db/hooks/create-hooks.d.ts.map +1 -0
- package/dist/db/hooks/index.d.ts +40 -0
- package/dist/db/hooks/index.d.ts.map +1 -0
- package/dist/db/hooks/types.d.ts +133 -0
- package/dist/db/hooks/types.d.ts.map +1 -0
- package/dist/db/hooks/update-hooks.d.ts +33 -0
- package/dist/db/hooks/update-hooks.d.ts.map +1 -0
- package/dist/db/hooks/update-many-hooks.d.ts +55 -0
- package/dist/db/hooks/update-many-hooks.d.ts.map +1 -0
- package/dist/db/hooks/utils.d.ts +62 -0
- package/dist/db/hooks/utils.d.ts.map +1 -0
- package/dist/db/hooks/with-hooks-factory.d.ts +33 -0
- package/dist/db/hooks/with-hooks-factory.d.ts.map +1 -0
- package/dist/db/index.cjs +2458 -0
- package/dist/db/index.d.ts +11 -0
- package/dist/db/index.d.ts.map +1 -0
- package/dist/db/index.js +2404 -0
- package/dist/db/migration/get-migration.d.ts +32 -0
- package/dist/db/migration/get-migration.d.ts.map +1 -0
- package/dist/db/migration/get-schema/get-schema.d.ts +27 -0
- package/dist/db/migration/get-schema/get-schema.d.ts.map +1 -0
- package/dist/db/migration/get-schema/index.d.ts +21 -0
- package/dist/db/migration/get-schema/index.d.ts.map +1 -0
- package/dist/db/migration/get-schema/process-fields.d.ts +16 -0
- package/dist/db/migration/get-schema/process-fields.d.ts.map +1 -0
- package/dist/db/migration/get-schema/process-tables.d.ts +13 -0
- package/dist/db/migration/get-schema/process-tables.d.ts.map +1 -0
- package/dist/db/migration/get-schema/types.d.ts +17 -0
- package/dist/db/migration/get-schema/types.d.ts.map +1 -0
- package/dist/db/migration/index.cjs +1613 -0
- package/dist/db/migration/index.d.ts +14 -0
- package/dist/db/migration/index.d.ts.map +1 -0
- package/dist/db/migration/index.js +1571 -0
- package/dist/db/migration/migration-builders.d.ts +28 -0
- package/dist/db/migration/migration-builders.d.ts.map +1 -0
- package/dist/db/migration/migration-execution.d.ts +12 -0
- package/dist/db/migration/migration-execution.d.ts.map +1 -0
- package/dist/db/migration/schema-comparison.d.ts +54 -0
- package/dist/db/migration/schema-comparison.d.ts.map +1 -0
- package/dist/db/migration/type-mapping.d.ts +86 -0
- package/dist/db/migration/type-mapping.d.ts.map +1 -0
- package/dist/db/migration/types.d.ts +37 -0
- package/dist/db/migration/types.d.ts.map +1 -0
- package/dist/db/schema/audit-log/index.d.ts +4 -0
- package/dist/db/schema/audit-log/index.d.ts.map +1 -0
- package/dist/db/schema/audit-log/registry.d.ts +128 -0
- package/dist/db/schema/audit-log/registry.d.ts.map +1 -0
- package/dist/db/schema/audit-log/schema.d.ts +67 -0
- package/dist/db/schema/audit-log/schema.d.ts.map +1 -0
- package/dist/db/schema/audit-log/table.d.ts +175 -0
- package/dist/db/schema/audit-log/table.d.ts.map +1 -0
- package/dist/db/schema/audit-log/types.d.ts +29 -0
- package/dist/db/schema/audit-log/types.d.ts.map +1 -0
- package/dist/db/schema/consent/index.d.ts +4 -0
- package/dist/db/schema/consent/index.d.ts.map +1 -0
- package/dist/db/schema/consent/registry.d.ts +318 -0
- package/dist/db/schema/consent/registry.d.ts.map +1 -0
- package/dist/db/schema/consent/schema.d.ts +135 -0
- package/dist/db/schema/consent/schema.d.ts.map +1 -0
- package/dist/db/schema/consent/table.d.ts +245 -0
- package/dist/db/schema/consent/table.d.ts.map +1 -0
- package/dist/db/schema/consent/types.d.ts +37 -0
- package/dist/db/schema/consent/types.d.ts.map +1 -0
- package/dist/db/schema/consent-geo-location/index.d.ts +4 -0
- package/dist/db/schema/consent-geo-location/index.d.ts.map +1 -0
- package/dist/db/schema/consent-geo-location/registry.d.ts +96 -0
- package/dist/db/schema/consent-geo-location/registry.d.ts.map +1 -0
- package/dist/db/schema/consent-geo-location/schema.d.ts +71 -0
- package/dist/db/schema/consent-geo-location/schema.d.ts.map +1 -0
- package/dist/db/schema/consent-geo-location/table.d.ts +167 -0
- package/dist/db/schema/consent-geo-location/table.d.ts.map +1 -0
- package/dist/db/schema/consent-geo-location/types.d.ts +21 -0
- package/dist/db/schema/consent-geo-location/types.d.ts.map +1 -0
- package/dist/db/schema/consent-policy/index.d.ts +4 -0
- package/dist/db/schema/consent-policy/index.d.ts.map +1 -0
- package/dist/db/schema/consent-policy/registry.d.ts +186 -0
- package/dist/db/schema/consent-policy/registry.d.ts.map +1 -0
- package/dist/db/schema/consent-policy/schema.d.ts +68 -0
- package/dist/db/schema/consent-policy/schema.d.ts.map +1 -0
- package/dist/db/schema/consent-policy/table.d.ts +147 -0
- package/dist/db/schema/consent-policy/table.d.ts.map +1 -0
- package/dist/db/schema/consent-policy/types.d.ts +28 -0
- package/dist/db/schema/consent-policy/types.d.ts.map +1 -0
- package/dist/db/schema/consent-purpose/index.d.ts +4 -0
- package/dist/db/schema/consent-purpose/index.d.ts.map +1 -0
- package/dist/db/schema/consent-purpose/registry.d.ts +136 -0
- package/dist/db/schema/consent-purpose/registry.d.ts.map +1 -0
- package/dist/db/schema/consent-purpose/schema.d.ts +79 -0
- package/dist/db/schema/consent-purpose/schema.d.ts.map +1 -0
- package/dist/db/schema/consent-purpose/table.d.ts +161 -0
- package/dist/db/schema/consent-purpose/table.d.ts.map +1 -0
- package/dist/db/schema/consent-purpose/types.d.ts +16 -0
- package/dist/db/schema/consent-purpose/types.d.ts.map +1 -0
- package/dist/db/schema/consent-purpose-junction/index.d.ts +4 -0
- package/dist/db/schema/consent-purpose-junction/index.d.ts.map +1 -0
- package/dist/db/schema/consent-purpose-junction/registry.d.ts +109 -0
- package/dist/db/schema/consent-purpose-junction/registry.d.ts.map +1 -0
- package/dist/db/schema/consent-purpose-junction/schema.d.ts +57 -0
- package/dist/db/schema/consent-purpose-junction/schema.d.ts.map +1 -0
- package/dist/db/schema/consent-purpose-junction/table.d.ts +138 -0
- package/dist/db/schema/consent-purpose-junction/table.d.ts.map +1 -0
- package/dist/db/schema/consent-purpose-junction/types.d.ts +14 -0
- package/dist/db/schema/consent-purpose-junction/types.d.ts.map +1 -0
- package/dist/db/schema/consent-record/index.d.ts +4 -0
- package/dist/db/schema/consent-record/index.d.ts.map +1 -0
- package/dist/db/schema/consent-record/registry.d.ts +119 -0
- package/dist/db/schema/consent-record/registry.d.ts.map +1 -0
- package/dist/db/schema/consent-record/schema.d.ts +57 -0
- package/dist/db/schema/consent-record/schema.d.ts.map +1 -0
- package/dist/db/schema/consent-record/table.d.ts +123 -0
- package/dist/db/schema/consent-record/table.d.ts.map +1 -0
- package/dist/db/schema/consent-record/types.d.ts +21 -0
- package/dist/db/schema/consent-record/types.d.ts.map +1 -0
- package/dist/db/schema/consent-withdrawal/index.d.ts +4 -0
- package/dist/db/schema/consent-withdrawal/index.d.ts.map +1 -0
- package/dist/db/schema/consent-withdrawal/registry.d.ts +134 -0
- package/dist/db/schema/consent-withdrawal/registry.d.ts.map +1 -0
- package/dist/db/schema/consent-withdrawal/schema.d.ts +67 -0
- package/dist/db/schema/consent-withdrawal/schema.d.ts.map +1 -0
- package/dist/db/schema/consent-withdrawal/table.d.ts +170 -0
- package/dist/db/schema/consent-withdrawal/table.d.ts.map +1 -0
- package/dist/db/schema/consent-withdrawal/types.d.ts +28 -0
- package/dist/db/schema/consent-withdrawal/types.d.ts.map +1 -0
- package/dist/db/schema/definition.d.ts +1100 -0
- package/dist/db/schema/definition.d.ts.map +1 -0
- package/dist/db/schema/domain/index.d.ts +4 -0
- package/dist/db/schema/domain/index.d.ts.map +1 -0
- package/dist/db/schema/domain/registry.d.ts +169 -0
- package/dist/db/schema/domain/registry.d.ts.map +1 -0
- package/dist/db/schema/domain/schema.d.ts +60 -0
- package/dist/db/schema/domain/schema.d.ts.map +1 -0
- package/dist/db/schema/domain/table.d.ts +140 -0
- package/dist/db/schema/domain/table.d.ts.map +1 -0
- package/dist/db/schema/domain/types.d.ts +27 -0
- package/dist/db/schema/domain/types.d.ts.map +1 -0
- package/dist/db/schema/geo-location/index.d.ts +4 -0
- package/dist/db/schema/geo-location/index.d.ts.map +1 -0
- package/dist/db/schema/geo-location/registry.d.ts +114 -0
- package/dist/db/schema/geo-location/registry.d.ts.map +1 -0
- package/dist/db/schema/geo-location/schema.d.ts +58 -0
- package/dist/db/schema/geo-location/schema.d.ts.map +1 -0
- package/dist/db/schema/geo-location/table.d.ts +132 -0
- package/dist/db/schema/geo-location/table.d.ts.map +1 -0
- package/dist/db/schema/geo-location/types.d.ts +17 -0
- package/dist/db/schema/geo-location/types.d.ts.map +1 -0
- package/dist/db/schema/index.d.ts +85 -0
- package/dist/db/schema/index.d.ts.map +1 -0
- package/dist/db/schema/parser.d.ts +183 -0
- package/dist/db/schema/parser.d.ts.map +1 -0
- package/dist/db/schema/schemas.d.ts +383 -0
- package/dist/db/schema/schemas.d.ts.map +1 -0
- package/dist/db/schema/subject/index.d.ts +4 -0
- package/dist/db/schema/subject/index.d.ts.map +1 -0
- package/dist/db/schema/subject/registry.d.ts +141 -0
- package/dist/db/schema/subject/registry.d.ts.map +1 -0
- package/dist/db/schema/subject/schema.d.ts +56 -0
- package/dist/db/schema/subject/schema.d.ts.map +1 -0
- package/dist/db/schema/subject/table.d.ts +136 -0
- package/dist/db/schema/subject/table.d.ts.map +1 -0
- package/dist/db/schema/subject/types.d.ts +22 -0
- package/dist/db/schema/subject/types.d.ts.map +1 -0
- package/dist/db/schema/types.d.ts +136 -0
- package/dist/db/schema/types.d.ts.map +1 -0
- package/dist/db/utils/adapter-factory.d.ts +21 -0
- package/dist/db/utils/adapter-factory.d.ts.map +1 -0
- package/dist/db/utils/index.d.ts +10 -0
- package/dist/db/utils/index.d.ts.map +1 -0
- package/dist/db/utils.d.ts +4 -0
- package/dist/db/utils.d.ts.map +1 -0
- package/dist/error/codes.cjs +68 -0
- package/dist/error/codes.d.ts +175 -0
- package/dist/error/codes.d.ts.map +1 -0
- package/dist/error/codes.js +35 -0
- package/dist/error/error.d.ts +79 -0
- package/dist/error/error.d.ts.map +1 -0
- package/dist/error/index.cjs +172 -0
- package/dist/error/index.d.ts +9 -0
- package/dist/error/index.d.ts.map +1 -0
- package/dist/error/index.js +129 -0
- package/dist/error/logging.d.ts +25 -0
- package/dist/error/logging.d.ts.map +1 -0
- package/dist/error/pipeline.d.ts +19 -0
- package/dist/error/pipeline.d.ts.map +1 -0
- package/dist/error/recovery.d.ts +22 -0
- package/dist/error/recovery.d.ts.map +1 -0
- package/dist/error/results.d.ts +56 -0
- package/dist/error/results.d.ts.map +1 -0
- package/dist/index.cjs +4777 -0
- package/dist/index.d.ts +46 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +4708 -0
- package/dist/init.d.ts +52 -0
- package/dist/init.d.ts.map +1 -0
- package/dist/init.test.d.ts +2 -0
- package/dist/init.test.d.ts.map +1 -0
- package/dist/integrations/index.cjs +281 -0
- package/dist/integrations/index.d.ts +7 -0
- package/dist/integrations/index.d.ts.map +1 -0
- package/dist/integrations/index.js +248 -0
- package/dist/integrations/next.cjs +131 -0
- package/dist/integrations/next.d.ts +29 -0
- package/dist/integrations/next.d.ts.map +1 -0
- package/dist/integrations/next.js +99 -0
- package/dist/integrations/react.cjs +182 -0
- package/dist/integrations/react.d.ts +257 -0
- package/dist/integrations/react.d.ts.map +1 -0
- package/dist/integrations/react.js +150 -0
- package/dist/plugins/geo/index.d.ts +2 -0
- package/dist/plugins/geo/index.d.ts.map +1 -0
- package/dist/test/utils.d.ts +65 -0
- package/dist/test/utils.d.ts.map +1 -0
- package/dist/types/api.d.ts +89 -0
- package/dist/types/api.d.ts.map +1 -0
- package/dist/types/context.d.ts +205 -0
- package/dist/types/context.d.ts.map +1 -0
- package/dist/types/helper.d.ts +78 -0
- package/dist/types/helper.d.ts.map +1 -0
- package/dist/types/index.cjs +19 -0
- package/dist/types/index.d.ts +6 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +0 -0
- package/dist/types/options.d.ts +172 -0
- package/dist/types/options.d.ts.map +1 -0
- package/dist/types/plugins.d.ts +442 -0
- package/dist/types/plugins.d.ts.map +1 -0
- package/dist/utils/env.d.ts +77 -0
- package/dist/utils/env.d.ts.map +1 -0
- package/dist/utils/hide-metadata.d.ts +22 -0
- package/dist/utils/hide-metadata.d.ts.map +1 -0
- package/dist/utils/index.cjs +268 -0
- package/dist/utils/index.d.ts +18 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +210 -0
- package/dist/utils/ip.d.ts +10 -0
- package/dist/utils/ip.d.ts.map +1 -0
- package/dist/utils/json.d.ts +14 -0
- package/dist/utils/json.d.ts.map +1 -0
- package/dist/utils/logger.d.ts +108 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/url.d.ts +87 -0
- package/dist/utils/url.d.ts.map +1 -0
- package/dist/utils/wildcard.d.ts +46 -0
- package/dist/utils/wildcard.d.ts.map +1 -0
- package/knip.json +37 -0
- package/package.json +146 -0
- package/rslib.config.ts +104 -0
- package/src/api/call.ts +177 -0
- package/src/api/index.ts +303 -0
- package/src/api/middlewares/index.ts +38 -0
- package/src/api/middlewares/origin-check.ts +260 -0
- package/src/api/middlewares/validate-context.ts +175 -0
- package/src/api/routes/__tests__/consent.test.ts +270 -0
- package/src/api/routes/__tests__/status.test.ts +36 -0
- package/src/api/routes/error.ts +130 -0
- package/src/api/routes/generate-consent-receipt.ts +244 -0
- package/src/api/routes/get-consent-history.ts +128 -0
- package/src/api/routes/get-consent-policy.ts +327 -0
- package/src/api/routes/get-consent.ts +230 -0
- package/src/api/routes/index.ts +12 -0
- package/src/api/routes/ok.ts +45 -0
- package/src/api/routes/set-consent.ts +328 -0
- package/src/api/routes/show-consent-banner.ts +149 -0
- package/src/api/routes/status.ts +62 -0
- package/src/api/routes/verify-consent.ts +272 -0
- package/src/api/routes/withdraw-consent.ts +293 -0
- package/src/api/to-endpoints.ts +371 -0
- package/src/client/index.ts +471 -0
- package/src/client/types.ts +458 -0
- package/src/core.test.ts +303 -0
- package/src/core.ts +267 -0
- package/src/db/adapters/drizzle-adapter/drizzle-adapter.ts +711 -0
- package/src/db/adapters/drizzle-adapter/index.ts +1 -0
- package/src/db/adapters/kysely-adapter/dialect.ts +192 -0
- package/src/db/adapters/kysely-adapter/index.ts +3 -0
- package/src/db/adapters/kysely-adapter/kysely-adapter.ts +1168 -0
- package/src/db/adapters/kysely-adapter/types.ts +307 -0
- package/src/db/adapters/memory-adapter/index.ts +1 -0
- package/src/db/adapters/memory-adapter/memory-adapter.ts +648 -0
- package/src/db/adapters/prisma-adapter/index.ts +1 -0
- package/src/db/adapters/prisma-adapter/prisma-adapter.ts +586 -0
- package/src/db/adapters/types.ts +203 -0
- package/src/db/adapters/utils.ts +51 -0
- package/src/db/core/fields/field-factory.ts +804 -0
- package/src/db/core/fields/field-inference.ts +298 -0
- package/src/db/core/fields/field-options-integration.ts +135 -0
- package/src/db/core/fields/field-types.ts +233 -0
- package/src/db/core/fields/id-generator.ts +57 -0
- package/src/db/core/fields/index.ts +56 -0
- package/src/db/core/fields/superjson-utils.ts +155 -0
- package/src/db/core/fields/zod-fields.ts +269 -0
- package/src/db/core/get-schema.ts +102 -0
- package/src/db/core/types.ts +52 -0
- package/src/db/create-registry.ts +31 -0
- package/src/db/hooks/create-hooks.ts +88 -0
- package/src/db/hooks/index.ts +39 -0
- package/src/db/hooks/types.ts +164 -0
- package/src/db/hooks/update-hooks.ts +91 -0
- package/src/db/hooks/update-many-hooks.ts +176 -0
- package/src/db/hooks/utils.ts +151 -0
- package/src/db/hooks/with-hooks-factory.ts +68 -0
- package/src/db/index.ts +32 -0
- package/src/db/migration/get-migration.ts +89 -0
- package/src/db/migration/get-schema/get-schema.ts +44 -0
- package/src/db/migration/get-schema/index.ts +20 -0
- package/src/db/migration/get-schema/process-fields.ts +66 -0
- package/src/db/migration/get-schema/process-tables.ts +68 -0
- package/src/db/migration/get-schema/types.ts +18 -0
- package/src/db/migration/index.ts +18 -0
- package/src/db/migration/migration-builders.ts +170 -0
- package/src/db/migration/migration-execution.ts +79 -0
- package/src/db/migration/schema-comparison.ts +216 -0
- package/src/db/migration/type-mapping.ts +255 -0
- package/src/db/migration/types.ts +46 -0
- package/src/db/schema/audit-log/index.ts +3 -0
- package/src/db/schema/audit-log/registry.ts +228 -0
- package/src/db/schema/audit-log/schema.ts +46 -0
- package/src/db/schema/audit-log/table.ts +185 -0
- package/src/db/schema/audit-log/types.ts +29 -0
- package/src/db/schema/consent/index.ts +3 -0
- package/src/db/schema/consent/registry.ts +381 -0
- package/src/db/schema/consent/schema.ts +65 -0
- package/src/db/schema/consent/table.ts +220 -0
- package/src/db/schema/consent/types.ts +39 -0
- package/src/db/schema/consent-geo-location/index.ts +3 -0
- package/src/db/schema/consent-geo-location/registry.ts +124 -0
- package/src/db/schema/consent-geo-location/schema.ts +51 -0
- package/src/db/schema/consent-geo-location/table.ts +169 -0
- package/src/db/schema/consent-geo-location/types.ts +21 -0
- package/src/db/schema/consent-policy/index.ts +3 -0
- package/src/db/schema/consent-policy/registry.ts +313 -0
- package/src/db/schema/consent-policy/schema.ts +47 -0
- package/src/db/schema/consent-policy/table.ts +141 -0
- package/src/db/schema/consent-policy/types.ts +28 -0
- package/src/db/schema/consent-purpose/index.ts +3 -0
- package/src/db/schema/consent-purpose/registry.ts +188 -0
- package/src/db/schema/consent-purpose/schema.ts +58 -0
- package/src/db/schema/consent-purpose/table.ts +154 -0
- package/src/db/schema/consent-purpose/types.ts +16 -0
- package/src/db/schema/consent-purpose-junction/index.ts +3 -0
- package/src/db/schema/consent-purpose-junction/registry.ts +189 -0
- package/src/db/schema/consent-purpose-junction/schema.ts +49 -0
- package/src/db/schema/consent-purpose-junction/table.ts +142 -0
- package/src/db/schema/consent-purpose-junction/types.ts +14 -0
- package/src/db/schema/consent-record/index.ts +3 -0
- package/src/db/schema/consent-record/registry.ts +209 -0
- package/src/db/schema/consent-record/schema.ts +42 -0
- package/src/db/schema/consent-record/table.ts +124 -0
- package/src/db/schema/consent-record/types.ts +21 -0
- package/src/db/schema/consent-withdrawal/index.ts +3 -0
- package/src/db/schema/consent-withdrawal/registry.ts +219 -0
- package/src/db/schema/consent-withdrawal/schema.ts +48 -0
- package/src/db/schema/consent-withdrawal/table.ts +181 -0
- package/src/db/schema/consent-withdrawal/types.ts +29 -0
- package/src/db/schema/definition.ts +196 -0
- package/src/db/schema/domain/index.ts +3 -0
- package/src/db/schema/domain/registry.ts +272 -0
- package/src/db/schema/domain/schema.ts +43 -0
- package/src/db/schema/domain/table.ts +137 -0
- package/src/db/schema/domain/types.ts +27 -0
- package/src/db/schema/geo-location/index.ts +3 -0
- package/src/db/schema/geo-location/registry.ts +159 -0
- package/src/db/schema/geo-location/schema.ts +45 -0
- package/src/db/schema/geo-location/table.ts +148 -0
- package/src/db/schema/geo-location/types.ts +18 -0
- package/src/db/schema/index.ts +96 -0
- package/src/db/schema/parser.ts +417 -0
- package/src/db/schema/schemas.ts +35 -0
- package/src/db/schema/subject/index.ts +3 -0
- package/src/db/schema/subject/registry.ts +371 -0
- package/src/db/schema/subject/schema.ts +41 -0
- package/src/db/schema/subject/table.ts +139 -0
- package/src/db/schema/subject/types.ts +22 -0
- package/src/db/schema/types.ts +154 -0
- package/src/db/utils/adapter-factory.ts +64 -0
- package/src/db/utils/index.ts +10 -0
- package/src/db/utils.ts +42 -0
- package/src/docs/ADVANCED_JSON_HANDLING.md +99 -0
- package/src/docs/neverthrow.md +171 -0
- package/src/error/codes.ts +201 -0
- package/src/error/error.ts +145 -0
- package/src/error/index.ts +23 -0
- package/src/error/logging.ts +52 -0
- package/src/error/pipeline.ts +57 -0
- package/src/error/recovery.ts +45 -0
- package/src/error/results.ts +100 -0
- package/src/index.ts +79 -0
- package/src/init.test.ts +235 -0
- package/src/init.ts +261 -0
- package/src/integrations/index.ts +10 -0
- package/src/integrations/next.ts +136 -0
- package/src/integrations/react.ts +567 -0
- package/src/plugins/geo/index.ts +563 -0
- package/src/test/utils.ts +244 -0
- package/src/types/api.ts +101 -0
- package/src/types/context.ts +235 -0
- package/src/types/helper.ts +87 -0
- package/src/types/index.ts +5 -0
- package/src/types/options.ts +189 -0
- package/src/types/plugins.ts +538 -0
- package/src/utils/env.ts +103 -0
- package/src/utils/hide-metadata.ts +21 -0
- package/src/utils/index.ts +17 -0
- package/src/utils/ip.ts +45 -0
- package/src/utils/json.ts +19 -0
- package/src/utils/logger.ts +252 -0
- package/src/utils/url.ts +194 -0
- package/src/utils/wildcard.ts +253 -0
- package/tsconfig.json +12 -0
- package/vitest.config.ts +14 -0
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
import type { Field } from '../../core/fields';
|
|
2
|
+
import type { C15TOptions } from '../../../types';
|
|
3
|
+
/**
|
|
4
|
+
* Generates the database table configuration for the consent consentPurpose entity.
|
|
5
|
+
*
|
|
6
|
+
* This function creates a schema definition that includes all standard consent consentPurpose fields
|
|
7
|
+
* and any additional fields from plugins or configuration. The resulting schema is used
|
|
8
|
+
* for database migrations, schema validation, and query building.
|
|
9
|
+
*
|
|
10
|
+
* @param options - C15T configuration options that may contain consentPurpose table customizations
|
|
11
|
+
* @param purposeFields - Additional fields from plugins to include in the consentPurpose table
|
|
12
|
+
* @returns A complete table schema definition with fields, model name, and metadata
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```typescript
|
|
16
|
+
* const purposeTableSchema = getPurposeTable(c15tOptions);
|
|
17
|
+
* // Use the schema for migrations or data access
|
|
18
|
+
* const migrationPlans = generateMigrations(purposeTableSchema);
|
|
19
|
+
* ```
|
|
20
|
+
*/
|
|
21
|
+
export declare function getPurposeTable(options: C15TOptions, purposeFields?: Record<string, Field>): {
|
|
22
|
+
/**
|
|
23
|
+
* The name of the consentPurpose table in the database, configurable through options
|
|
24
|
+
*/
|
|
25
|
+
entityName: string;
|
|
26
|
+
/**
|
|
27
|
+
* The ID prefix for the consentPurpose table
|
|
28
|
+
* Used to generate unique prefixed IDs for purposes
|
|
29
|
+
*/
|
|
30
|
+
entityPrefix: string;
|
|
31
|
+
/**
|
|
32
|
+
* The schema for the consentPurpose table
|
|
33
|
+
*/
|
|
34
|
+
schema: import("zod").ZodObject<{
|
|
35
|
+
id: import("zod").ZodString;
|
|
36
|
+
code: import("zod").ZodString;
|
|
37
|
+
name: import("zod").ZodString;
|
|
38
|
+
description: import("zod").ZodString;
|
|
39
|
+
isEssential: import("zod").ZodDefault<import("zod").ZodBoolean>;
|
|
40
|
+
dataCategory: import("zod").ZodOptional<import("zod").ZodString>;
|
|
41
|
+
legalBasis: import("zod").ZodOptional<import("zod").ZodString>;
|
|
42
|
+
isActive: import("zod").ZodDefault<import("zod").ZodBoolean>;
|
|
43
|
+
createdAt: import("zod").ZodDefault<import("zod").ZodDate>;
|
|
44
|
+
updatedAt: import("zod").ZodDefault<import("zod").ZodDate>;
|
|
45
|
+
}, "strip", import("zod").ZodTypeAny, {
|
|
46
|
+
id: string;
|
|
47
|
+
code: string;
|
|
48
|
+
createdAt: Date;
|
|
49
|
+
isActive: boolean;
|
|
50
|
+
updatedAt: Date;
|
|
51
|
+
name: string;
|
|
52
|
+
description: string;
|
|
53
|
+
isEssential: boolean;
|
|
54
|
+
dataCategory?: string | undefined;
|
|
55
|
+
legalBasis?: string | undefined;
|
|
56
|
+
}, {
|
|
57
|
+
id: string;
|
|
58
|
+
code: string;
|
|
59
|
+
name: string;
|
|
60
|
+
description: string;
|
|
61
|
+
createdAt?: Date | undefined;
|
|
62
|
+
isActive?: boolean | undefined;
|
|
63
|
+
updatedAt?: Date | undefined;
|
|
64
|
+
isEssential?: boolean | undefined;
|
|
65
|
+
dataCategory?: string | undefined;
|
|
66
|
+
legalBasis?: string | undefined;
|
|
67
|
+
}>;
|
|
68
|
+
/**
|
|
69
|
+
* Field definitions for the consent consentPurpose table
|
|
70
|
+
*/
|
|
71
|
+
fields: {
|
|
72
|
+
/**
|
|
73
|
+
* Unique code for the consentPurpose, used for programmatic identification
|
|
74
|
+
*/
|
|
75
|
+
code: {
|
|
76
|
+
type: string;
|
|
77
|
+
required: boolean;
|
|
78
|
+
fieldName: string;
|
|
79
|
+
};
|
|
80
|
+
/**
|
|
81
|
+
* Human-readable name of the consentPurpose
|
|
82
|
+
*/
|
|
83
|
+
name: {
|
|
84
|
+
type: string;
|
|
85
|
+
required: boolean;
|
|
86
|
+
fieldName: string;
|
|
87
|
+
};
|
|
88
|
+
/**
|
|
89
|
+
* Detailed description of the consentPurpose, shown to subjects
|
|
90
|
+
*/
|
|
91
|
+
description: {
|
|
92
|
+
type: string;
|
|
93
|
+
required: boolean;
|
|
94
|
+
fieldName: string;
|
|
95
|
+
};
|
|
96
|
+
/**
|
|
97
|
+
* Whether this is an essential consentPurpose that doesn't require explicit consent
|
|
98
|
+
* Default: false
|
|
99
|
+
*/
|
|
100
|
+
isEssential: {
|
|
101
|
+
type: string;
|
|
102
|
+
defaultValue: () => boolean;
|
|
103
|
+
required: boolean;
|
|
104
|
+
fieldName: string;
|
|
105
|
+
};
|
|
106
|
+
/**
|
|
107
|
+
* Category of data this consentPurpose processes (e.g., 'personal', 'profile')
|
|
108
|
+
* Optional field
|
|
109
|
+
*/
|
|
110
|
+
dataCategory: {
|
|
111
|
+
type: string;
|
|
112
|
+
required: boolean;
|
|
113
|
+
fieldName: string;
|
|
114
|
+
};
|
|
115
|
+
/**
|
|
116
|
+
* Legal basis for data processing (e.g., 'consent', 'legitimate interest')
|
|
117
|
+
* Optional field
|
|
118
|
+
*/
|
|
119
|
+
legalBasis: {
|
|
120
|
+
type: string;
|
|
121
|
+
required: boolean;
|
|
122
|
+
fieldName: string;
|
|
123
|
+
};
|
|
124
|
+
/**
|
|
125
|
+
* Whether this consentPurpose is currently active
|
|
126
|
+
* Default: true
|
|
127
|
+
*/
|
|
128
|
+
isActive: {
|
|
129
|
+
type: string;
|
|
130
|
+
defaultValue: boolean;
|
|
131
|
+
required: boolean;
|
|
132
|
+
fieldName: string;
|
|
133
|
+
};
|
|
134
|
+
/**
|
|
135
|
+
* When the consentPurpose record was created
|
|
136
|
+
* Automatically set to current time by default
|
|
137
|
+
*/
|
|
138
|
+
createdAt: {
|
|
139
|
+
type: string;
|
|
140
|
+
defaultValue: () => Date;
|
|
141
|
+
required: boolean;
|
|
142
|
+
fieldName: string;
|
|
143
|
+
};
|
|
144
|
+
/**
|
|
145
|
+
* When the consentPurpose record was last updated
|
|
146
|
+
* Automatically updated on each modification
|
|
147
|
+
*/
|
|
148
|
+
updatedAt: {
|
|
149
|
+
type: string;
|
|
150
|
+
defaultValue: () => Date;
|
|
151
|
+
required: boolean;
|
|
152
|
+
fieldName: string;
|
|
153
|
+
};
|
|
154
|
+
};
|
|
155
|
+
/**
|
|
156
|
+
* Execution order during migrations (lower numbers run first)
|
|
157
|
+
* ConsentPurpose table needs to be created relatively early as other tables reference it
|
|
158
|
+
*/
|
|
159
|
+
order: number;
|
|
160
|
+
};
|
|
161
|
+
//# sourceMappingURL=table.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../../../../src/db/schema/consent-purpose/table.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAG3C;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,eAAe,CAC9B,OAAO,EAAE,WAAW,EACpB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC;IAKpC;;OAEG;;IAGH;;;OAGG;;IAGH;;OAEG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAGH;;OAEG;;QAEF;;WAEG;;;;;;QAOH;;WAEG;;;;;;QAOH;;WAEG;;;;;;QAOH;;;WAGG;;;;;;;QAQH;;;WAGG;;;;;;QAOH;;;WAGG;;;;;;QAOH;;;WAGG;;;;;;;QAQH;;;WAGG;;;;;;;QAQH;;;WAGG;;;;;;;;IAeJ;;;OAGG;;EAGJ"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { ActiveEntityConfig } from '../types';
|
|
2
|
+
/**
|
|
3
|
+
* ConsentPurpose entity configuration
|
|
4
|
+
* @default entityName: "consentPurpose", entityPrefix: "pur"
|
|
5
|
+
*/
|
|
6
|
+
export interface ConsentPurposeEntityConfig extends ActiveEntityConfig {
|
|
7
|
+
fields?: Record<string, string> & {
|
|
8
|
+
id?: string;
|
|
9
|
+
name?: string;
|
|
10
|
+
description?: string;
|
|
11
|
+
isActive?: string;
|
|
12
|
+
createdAt?: string;
|
|
13
|
+
updatedAt?: string;
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/db/schema/consent-purpose/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAEnD;;;GAGG;AACH,MAAM,WAAW,0BAA2B,SAAQ,kBAAkB;IACrE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG;QACjC,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,SAAS,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/db/schema/consent-purpose-junction/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC"}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import type { GenericEndpointContext, RegistryContext } from '../../../types';
|
|
2
|
+
import type { PurposeJunction } from './schema';
|
|
3
|
+
/**
|
|
4
|
+
* Creates and returns a set of consent-purpose junction adapter methods to interact with the database.
|
|
5
|
+
* These methods provide a consistent interface for creating, finding, and managing
|
|
6
|
+
* relationships between consents and purposes while applying hooks and enforcing data validation rules.
|
|
7
|
+
*
|
|
8
|
+
* @param adapter - The database adapter used for direct database operations
|
|
9
|
+
* @param ctx - The context object containing the database adapter, hooks, and options
|
|
10
|
+
* @returns An object containing type-safe consent-purpose junction operations
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```typescript
|
|
14
|
+
* const junctionAdapter = createConsentPurposeJunctionAdapter(
|
|
15
|
+
* databaseAdapter,
|
|
16
|
+
* createWithHooks,
|
|
17
|
+
* updateWithHooks,
|
|
18
|
+
* c15tOptions
|
|
19
|
+
* );
|
|
20
|
+
*
|
|
21
|
+
* // Create a new junction record
|
|
22
|
+
* const junction = await junctionAdapter.createConsentPurposeJunction({
|
|
23
|
+
* consentId: 'cns_hadt8w7nngm7xmx2bn',
|
|
24
|
+
* purposeId: 'pol_tioiyf19tbkm7xn5vpx',
|
|
25
|
+
* status: 'active'
|
|
26
|
+
* });
|
|
27
|
+
* ```
|
|
28
|
+
*/
|
|
29
|
+
export declare function consentPurposeJunctionRegistry({ adapter, ...ctx }: RegistryContext): {
|
|
30
|
+
/**
|
|
31
|
+
* Creates a new consent-purpose junction record in the database.
|
|
32
|
+
* Automatically sets creation timestamp and applies any
|
|
33
|
+
* configured hooks during the creation process.
|
|
34
|
+
*
|
|
35
|
+
* @param junction - Junction data to create (without id and timestamp)
|
|
36
|
+
* @param context - Optional endpoint context for hooks
|
|
37
|
+
* @returns The created junction record with all fields populated
|
|
38
|
+
* @throws May throw an error if hooks prevent creation or if database operations fail
|
|
39
|
+
*/
|
|
40
|
+
createConsentPurposeJunction: (junction: Omit<PurposeJunction, "id" | "createdAt" | "status"> & Partial<PurposeJunction>, context?: GenericEndpointContext) => Promise<{
|
|
41
|
+
id: string;
|
|
42
|
+
status: "active" | "withdrawn";
|
|
43
|
+
createdAt: Date;
|
|
44
|
+
consentId: string;
|
|
45
|
+
updatedAt: Date;
|
|
46
|
+
consentPurposeId: string;
|
|
47
|
+
metadata?: Record<string, string | number | boolean> | undefined;
|
|
48
|
+
}>;
|
|
49
|
+
/**
|
|
50
|
+
* Finds all junction records for a specific consent.
|
|
51
|
+
* Returns junctions with processed output fields according to the schema configuration.
|
|
52
|
+
*
|
|
53
|
+
* @param consentId - The consent ID to find purposes for
|
|
54
|
+
* @returns Array of junction records associated with the consent
|
|
55
|
+
*/
|
|
56
|
+
findConsentPurposesByConsentId: (consentId: string) => Promise<{
|
|
57
|
+
id: string;
|
|
58
|
+
status: "active" | "withdrawn";
|
|
59
|
+
createdAt: Date;
|
|
60
|
+
consentId: string;
|
|
61
|
+
updatedAt: Date;
|
|
62
|
+
consentPurposeId: string;
|
|
63
|
+
metadata?: Record<string, string | number | boolean> | undefined;
|
|
64
|
+
}[]>;
|
|
65
|
+
/**
|
|
66
|
+
* Finds all junction records for a specific consentPurpose.
|
|
67
|
+
* Returns junctions with processed output fields according to the schema configuration.
|
|
68
|
+
*
|
|
69
|
+
* @param purposeId - The consentPurpose ID to find consents for
|
|
70
|
+
* @returns Array of junction records associated with the consentPurpose
|
|
71
|
+
*/
|
|
72
|
+
findConsentPurposesByPurposeId: (purposeId: string) => Promise<{
|
|
73
|
+
id: string;
|
|
74
|
+
status: "active" | "withdrawn";
|
|
75
|
+
createdAt: Date;
|
|
76
|
+
consentId: string;
|
|
77
|
+
updatedAt: Date;
|
|
78
|
+
consentPurposeId: string;
|
|
79
|
+
metadata?: Record<string, string | number | boolean> | undefined;
|
|
80
|
+
}[]>;
|
|
81
|
+
/**
|
|
82
|
+
* Updates a junction record's status.
|
|
83
|
+
* Applies any configured hooks during the update process and
|
|
84
|
+
* processes the output according to schema configuration.
|
|
85
|
+
*
|
|
86
|
+
* @param junctionId - The unique identifier of the junction to update
|
|
87
|
+
* @param status - The new status value ('active' or 'withdrawn')
|
|
88
|
+
* @param context - Optional endpoint context for hooks
|
|
89
|
+
* @returns The updated junction if successful, null if not found or hooks prevented update
|
|
90
|
+
*/
|
|
91
|
+
updateConsentPurposeJunction: (junctionId: string, status: "active" | "withdrawn", context?: GenericEndpointContext) => Promise<{
|
|
92
|
+
id: string;
|
|
93
|
+
status: "active" | "withdrawn";
|
|
94
|
+
createdAt: Date;
|
|
95
|
+
consentId: string;
|
|
96
|
+
updatedAt: Date;
|
|
97
|
+
consentPurposeId: string;
|
|
98
|
+
metadata?: Record<string, string | number | boolean> | undefined;
|
|
99
|
+
} | null>;
|
|
100
|
+
/**
|
|
101
|
+
* Deletes all junction records for a specific consent.
|
|
102
|
+
* This effectively removes all consentPurpose connections for the consent.
|
|
103
|
+
*
|
|
104
|
+
* @param consentId - The ID of the consent to remove all consentPurpose connections for
|
|
105
|
+
* @returns True if successful, false otherwise
|
|
106
|
+
*/
|
|
107
|
+
deleteConsentPurposeJunctionsByConsentId: (consentId: string) => Promise<boolean>;
|
|
108
|
+
};
|
|
109
|
+
//# sourceMappingURL=registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../../src/db/schema/consent-purpose-junction/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AACvE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAKhD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,8BAA8B,CAAC,EAC9C,OAAO,EACP,GAAG,GAAG,EACN,EAAE,eAAe;IAGhB;;;;;;;;;OASG;6CAEQ,IAAI,CAAC,eAAe,EAAE,IAAI,GAAG,WAAW,GAAG,QAAQ,CAAC,GAC7D,OAAO,CAAC,eAAe,CAAC,YACf,sBAAsB;;;;;;;;;IAuBjC;;;;;;OAMG;gDAC+C,MAAM;;;;;;;;;IAoBxD;;;;;;OAMG;gDAC+C,MAAM;;;;;;;;;IAoBxD;;;;;;;;;OASG;+CAEU,MAAM,UACV,QAAQ,GAAG,WAAW,YACpB,sBAAsB;;;;;;;;;IAsBjC;;;;;;OAMG;0DACyD,MAAM;EAkBnE"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
/**
|
|
3
|
+
* Zod schema for validating consent-purpose junction entities.
|
|
4
|
+
*
|
|
5
|
+
* This defines the structure and validation rules for junction records:
|
|
6
|
+
* - Required fields: consentId, purposeId
|
|
7
|
+
* - Default value of 'active' for status
|
|
8
|
+
* - Default current date/time for creation and update timestamps
|
|
9
|
+
* - Default current date/time for update timestamp
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```typescript
|
|
13
|
+
* const junctionData = {
|
|
14
|
+
* id: 'pjx_w5qufx2a66m7xkn3ty',
|
|
15
|
+
* consentId: 'cns_hadt8w7nngm7xmx2bn',
|
|
16
|
+
* purposeId: 'pur_e8zyhgozr3im7xj59it',
|
|
17
|
+
* status: 'active'
|
|
18
|
+
* };
|
|
19
|
+
*
|
|
20
|
+
* // Validate and parse the junction data
|
|
21
|
+
* const validJunction = consentPurposeJunctionSchema.parse(junctionData);
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
24
|
+
export declare const consentPurposeJunctionSchema: z.ZodObject<{
|
|
25
|
+
id: z.ZodString;
|
|
26
|
+
consentId: z.ZodString;
|
|
27
|
+
consentPurposeId: z.ZodString;
|
|
28
|
+
status: z.ZodDefault<z.ZodEnum<["active", "withdrawn"]>>;
|
|
29
|
+
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean]>>>;
|
|
30
|
+
createdAt: z.ZodDefault<z.ZodDate>;
|
|
31
|
+
updatedAt: z.ZodDefault<z.ZodDate>;
|
|
32
|
+
}, "strip", z.ZodTypeAny, {
|
|
33
|
+
id: string;
|
|
34
|
+
status: "active" | "withdrawn";
|
|
35
|
+
createdAt: Date;
|
|
36
|
+
consentId: string;
|
|
37
|
+
updatedAt: Date;
|
|
38
|
+
consentPurposeId: string;
|
|
39
|
+
metadata?: Record<string, string | number | boolean> | undefined;
|
|
40
|
+
}, {
|
|
41
|
+
id: string;
|
|
42
|
+
consentId: string;
|
|
43
|
+
consentPurposeId: string;
|
|
44
|
+
status?: "active" | "withdrawn" | undefined;
|
|
45
|
+
metadata?: Record<string, string | number | boolean> | undefined;
|
|
46
|
+
createdAt?: Date | undefined;
|
|
47
|
+
updatedAt?: Date | undefined;
|
|
48
|
+
}>;
|
|
49
|
+
/**
|
|
50
|
+
* Type definition for PurposeJunction
|
|
51
|
+
*
|
|
52
|
+
* This type represents the structure of a consent-purpose junction record
|
|
53
|
+
* as defined by the consentPurposeJunctionSchema. It includes all fields
|
|
54
|
+
* that are part of the junction entity.
|
|
55
|
+
*/
|
|
56
|
+
export type PurposeJunction = z.infer<typeof consentPurposeJunctionSchema>;
|
|
57
|
+
//# sourceMappingURL=schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../../src/db/schema/consent-purpose-junction/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;EAevC,CAAC;AAEH;;;;;;GAMG;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC"}
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
import type { Field } from '../../core/fields';
|
|
2
|
+
import type { C15TOptions } from '../../../types';
|
|
3
|
+
/**
|
|
4
|
+
* Generates the database table configuration for the consent-purpose junction entity.
|
|
5
|
+
*
|
|
6
|
+
* This function creates a schema definition that implements a many-to-many relationship
|
|
7
|
+
* between consents and purposes. The resulting schema is used for database migrations,
|
|
8
|
+
* schema validation, and query building.
|
|
9
|
+
*
|
|
10
|
+
* @param options - C15T configuration options that may contain junction table customizations
|
|
11
|
+
* @param junctionFields - Additional fields from plugins to include in the junction table
|
|
12
|
+
* @returns A complete table schema definition with fields, model name, and metadata
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```typescript
|
|
16
|
+
* const junctionTableSchema = getPurposeJunctionTable(c15tOptions);
|
|
17
|
+
* // Use the schema for migrations or data access
|
|
18
|
+
* const migrationPlans = generateMigrations(junctionTableSchema);
|
|
19
|
+
* ```
|
|
20
|
+
*/
|
|
21
|
+
export declare function getPurposeJunctionTable(options: C15TOptions, junctionFields?: Record<string, Field>): {
|
|
22
|
+
/**
|
|
23
|
+
* The name of the junction table in the database, configurable through options
|
|
24
|
+
*/
|
|
25
|
+
entityName: string;
|
|
26
|
+
/**
|
|
27
|
+
* The ID prefix for the consentPurpose junction table
|
|
28
|
+
* Used to generate unique prefixed IDs for consentPurpose junctions
|
|
29
|
+
*/
|
|
30
|
+
entityPrefix: string;
|
|
31
|
+
/**
|
|
32
|
+
* The schema for the consentPurpose junction table
|
|
33
|
+
*/
|
|
34
|
+
schema: import("zod").ZodObject<{
|
|
35
|
+
id: import("zod").ZodString;
|
|
36
|
+
consentId: import("zod").ZodString;
|
|
37
|
+
consentPurposeId: import("zod").ZodString;
|
|
38
|
+
status: import("zod").ZodDefault<import("zod").ZodEnum<["active", "withdrawn"]>>;
|
|
39
|
+
metadata: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnion<[import("zod").ZodString, import("zod").ZodNumber, import("zod").ZodBoolean]>>>;
|
|
40
|
+
createdAt: import("zod").ZodDefault<import("zod").ZodDate>;
|
|
41
|
+
updatedAt: import("zod").ZodDefault<import("zod").ZodDate>;
|
|
42
|
+
}, "strip", import("zod").ZodTypeAny, {
|
|
43
|
+
id: string;
|
|
44
|
+
status: "active" | "withdrawn";
|
|
45
|
+
createdAt: Date;
|
|
46
|
+
consentId: string;
|
|
47
|
+
updatedAt: Date;
|
|
48
|
+
consentPurposeId: string;
|
|
49
|
+
metadata?: Record<string, string | number | boolean> | undefined;
|
|
50
|
+
}, {
|
|
51
|
+
id: string;
|
|
52
|
+
consentId: string;
|
|
53
|
+
consentPurposeId: string;
|
|
54
|
+
status?: "active" | "withdrawn" | undefined;
|
|
55
|
+
metadata?: Record<string, string | number | boolean> | undefined;
|
|
56
|
+
createdAt?: Date | undefined;
|
|
57
|
+
updatedAt?: Date | undefined;
|
|
58
|
+
}>;
|
|
59
|
+
/**
|
|
60
|
+
* Field definitions for the consent-purpose junction table
|
|
61
|
+
*/
|
|
62
|
+
fields: {
|
|
63
|
+
/**
|
|
64
|
+
* Reference to the consent record this junction is associated with
|
|
65
|
+
*/
|
|
66
|
+
consentId: {
|
|
67
|
+
type: string;
|
|
68
|
+
required: boolean;
|
|
69
|
+
fieldName: string;
|
|
70
|
+
references: {
|
|
71
|
+
model: string;
|
|
72
|
+
field: string;
|
|
73
|
+
};
|
|
74
|
+
};
|
|
75
|
+
/**
|
|
76
|
+
* Reference to the consentPurpose record this junction is associated with
|
|
77
|
+
*/
|
|
78
|
+
purposeId: {
|
|
79
|
+
type: string;
|
|
80
|
+
required: boolean;
|
|
81
|
+
fieldName: string;
|
|
82
|
+
references: {
|
|
83
|
+
model: string;
|
|
84
|
+
field: string;
|
|
85
|
+
};
|
|
86
|
+
};
|
|
87
|
+
/**
|
|
88
|
+
* Status of this specific consent-purpose relationship
|
|
89
|
+
* Default: 'active'
|
|
90
|
+
*/
|
|
91
|
+
status: {
|
|
92
|
+
type: string;
|
|
93
|
+
defaultValue: () => string;
|
|
94
|
+
required: boolean;
|
|
95
|
+
fieldName: string;
|
|
96
|
+
};
|
|
97
|
+
/**
|
|
98
|
+
* Additional metadata about this specific consent-purpose relationship
|
|
99
|
+
*/
|
|
100
|
+
metadata: {
|
|
101
|
+
type: string;
|
|
102
|
+
required: boolean;
|
|
103
|
+
fieldName: string;
|
|
104
|
+
};
|
|
105
|
+
/**
|
|
106
|
+
* When the junction record was created
|
|
107
|
+
* Automatically set to current time by default
|
|
108
|
+
*/
|
|
109
|
+
createdAt: {
|
|
110
|
+
type: string;
|
|
111
|
+
defaultValue: () => Date;
|
|
112
|
+
required: boolean;
|
|
113
|
+
fieldName: string;
|
|
114
|
+
};
|
|
115
|
+
/**
|
|
116
|
+
* When the junction record was last updated
|
|
117
|
+
* Optional, set during updates
|
|
118
|
+
*/
|
|
119
|
+
updatedAt: {
|
|
120
|
+
type: string;
|
|
121
|
+
required: boolean;
|
|
122
|
+
fieldName: string;
|
|
123
|
+
};
|
|
124
|
+
};
|
|
125
|
+
/**
|
|
126
|
+
* Add unique constraint to ensure a consentPurpose can only be associated with a consent once
|
|
127
|
+
*/
|
|
128
|
+
uniqueConstraints: {
|
|
129
|
+
name: string;
|
|
130
|
+
fields: string[];
|
|
131
|
+
}[];
|
|
132
|
+
/**
|
|
133
|
+
* Execution order during migrations (lower numbers run first)
|
|
134
|
+
* Junction table needs to be created after the consent and consentPurpose tables it references
|
|
135
|
+
*/
|
|
136
|
+
order: number;
|
|
137
|
+
};
|
|
138
|
+
//# sourceMappingURL=table.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../../../../src/db/schema/consent-purpose-junction/table.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAG3C;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,uBAAuB,CACtC,OAAO,EAAE,WAAW,EACpB,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC;IAOrC;;OAEG;;IAGH;;;OAGG;;IAGH;;OAEG;;;;;;;;;;;;;;;;;;;;;;;;;;IAGH;;OAEG;;QAEF;;WAEG;;;;;;;;;;QAWH;;WAEG;;;;;;;;;;QAWH;;;WAGG;;;;;;;QAQH;;WAEG;;;;;;QAOH;;;WAGG;;;;;;;QAQH;;;WAGG;;;;;;;IAcJ;;OAEG;;;;;IAQH;;;OAGG;;EAGJ"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { BaseEntityConfig } from '../types';
|
|
2
|
+
/**
|
|
3
|
+
* ConsentPurpose junction entity configuration
|
|
4
|
+
* @default entityName: "consentPurposeJunction", entityPrefix: "pjx"
|
|
5
|
+
*/
|
|
6
|
+
export interface ConsentPurposeJunctionEntityConfig extends BaseEntityConfig {
|
|
7
|
+
fields?: Record<string, string> & {
|
|
8
|
+
id?: string;
|
|
9
|
+
consentId?: string;
|
|
10
|
+
purposeId?: string;
|
|
11
|
+
isAccepted?: string;
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/db/schema/consent-purpose-junction/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAEjD;;;GAGG;AACH,MAAM,WAAW,kCAAmC,SAAQ,gBAAgB;IAC3E,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG;QACjC,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,UAAU,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/db/schema/consent-record/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC"}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import type { GenericEndpointContext, RegistryContext } from '../../../types';
|
|
2
|
+
import type { ConsentRecord } from './schema';
|
|
3
|
+
/**
|
|
4
|
+
* Creates and returns a set of consent record-related adapter methods to interact with the database.
|
|
5
|
+
* These methods provide a consistent interface for creating and querying consent records
|
|
6
|
+
* while applying hooks and enforcing data validation rules.
|
|
7
|
+
*
|
|
8
|
+
* @param adapter - The database adapter used for direct database operations
|
|
9
|
+
* @param ctx - The context object containing the database adapter, hooks, and options
|
|
10
|
+
* @returns An object containing type-safe consent record operations
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```typescript
|
|
14
|
+
* const recordAdapter = createRecordAdapter(
|
|
15
|
+
* databaseAdapter,
|
|
16
|
+
* createWithHooks,
|
|
17
|
+
* c15tOptions
|
|
18
|
+
* );
|
|
19
|
+
*
|
|
20
|
+
* // Create a new consent record
|
|
21
|
+
* const record = await recordAdapter.createConsentRecord({
|
|
22
|
+
* subjectId: 'sub_x1pftyoufsm7xgo1kv',
|
|
23
|
+
* consentId: 'cns_hadt8w7nngm7xmx2bn',
|
|
24
|
+
* actionType: 'given',
|
|
25
|
+
* details: { ip: '192.168.1.1', userAgent: 'Mozilla/5.0...' }
|
|
26
|
+
* });
|
|
27
|
+
* ```
|
|
28
|
+
*/
|
|
29
|
+
export declare function consentRecordRegistry({ adapter, ...ctx }: RegistryContext): {
|
|
30
|
+
/**
|
|
31
|
+
* Creates a new consent record in the database.
|
|
32
|
+
* Automatically sets creation timestamp and applies any
|
|
33
|
+
* configured hooks during the creation process.
|
|
34
|
+
*
|
|
35
|
+
* @param record - Consent record data to create (without id and timestamp)
|
|
36
|
+
* @param context - Optional endpoint context for hooks
|
|
37
|
+
* @returns The created consent record with all fields populated
|
|
38
|
+
* @throws May throw an error if hooks prevent creation or if database operations fail
|
|
39
|
+
*/
|
|
40
|
+
createConsentRecord: (record: Omit<ConsentRecord, "id" | "createdAt" | "updatedAt"> & Partial<ConsentRecord>, context?: GenericEndpointContext) => Promise<{
|
|
41
|
+
id: string;
|
|
42
|
+
actionType: string;
|
|
43
|
+
subjectId: string;
|
|
44
|
+
createdAt: Date;
|
|
45
|
+
updatedAt: Date;
|
|
46
|
+
details?: Record<string, unknown> | undefined;
|
|
47
|
+
consentId?: string | undefined;
|
|
48
|
+
}>;
|
|
49
|
+
/**
|
|
50
|
+
* Finds all consent records matching specified filters.
|
|
51
|
+
* Returns records with processed output fields according to the schema configuration.
|
|
52
|
+
*
|
|
53
|
+
* @param subjectId - Optional subject ID to filter records
|
|
54
|
+
* @param consentId - Optional consent ID to filter records
|
|
55
|
+
* @param actionType - Optional action type to filter records
|
|
56
|
+
* @param limit - Optional maximum number of records to return
|
|
57
|
+
* @returns Array of consent records matching the criteria
|
|
58
|
+
*/
|
|
59
|
+
findConsentRecords: (subjectId?: string, consentId?: string, actionType?: string, limit?: number) => Promise<{
|
|
60
|
+
id: string;
|
|
61
|
+
actionType: string;
|
|
62
|
+
subjectId: string;
|
|
63
|
+
createdAt: Date;
|
|
64
|
+
updatedAt: Date;
|
|
65
|
+
details?: Record<string, unknown> | undefined;
|
|
66
|
+
consentId?: string | undefined;
|
|
67
|
+
}[]>;
|
|
68
|
+
/**
|
|
69
|
+
* Finds a consent record by its unique ID.
|
|
70
|
+
* Returns the record with processed output fields according to the schema configuration.
|
|
71
|
+
*
|
|
72
|
+
* @param recordId - The unique identifier of the consent record
|
|
73
|
+
* @returns The consent record object if found, null otherwise
|
|
74
|
+
*/
|
|
75
|
+
findConsentRecordById: (recordId: string) => Promise<{
|
|
76
|
+
id: string;
|
|
77
|
+
actionType: string;
|
|
78
|
+
subjectId: string;
|
|
79
|
+
createdAt: Date;
|
|
80
|
+
updatedAt: Date;
|
|
81
|
+
details?: Record<string, unknown> | undefined;
|
|
82
|
+
consentId?: string | undefined;
|
|
83
|
+
} | null>;
|
|
84
|
+
/**
|
|
85
|
+
* Finds all consent records for a specific subject.
|
|
86
|
+
* Returns records with processed output fields according to the schema configuration.
|
|
87
|
+
*
|
|
88
|
+
* @param subjectId - The subject ID to find consent records for
|
|
89
|
+
* @param limit - Optional maximum number of records to return
|
|
90
|
+
* @returns Array of consent records associated with the subject
|
|
91
|
+
*/
|
|
92
|
+
findConsentRecordsBySubjectId: (subjectId: string, limit?: number) => Promise<{
|
|
93
|
+
id: string;
|
|
94
|
+
actionType: string;
|
|
95
|
+
subjectId: string;
|
|
96
|
+
createdAt: Date;
|
|
97
|
+
updatedAt: Date;
|
|
98
|
+
details?: Record<string, unknown> | undefined;
|
|
99
|
+
consentId?: string | undefined;
|
|
100
|
+
}[]>;
|
|
101
|
+
/**
|
|
102
|
+
* Finds all consent records for a specific consent.
|
|
103
|
+
* Returns records with processed output fields according to the schema configuration.
|
|
104
|
+
*
|
|
105
|
+
* @param consentId - The consent ID to find records for
|
|
106
|
+
* @param limit - Optional maximum number of records to return
|
|
107
|
+
* @returns Array of consent records associated with the consent
|
|
108
|
+
*/
|
|
109
|
+
findConsentRecordsByConsentId: (consentId: string, limit?: number) => Promise<{
|
|
110
|
+
id: string;
|
|
111
|
+
actionType: string;
|
|
112
|
+
subjectId: string;
|
|
113
|
+
createdAt: Date;
|
|
114
|
+
updatedAt: Date;
|
|
115
|
+
details?: Record<string, unknown> | undefined;
|
|
116
|
+
consentId?: string | undefined;
|
|
117
|
+
}[]>;
|
|
118
|
+
};
|
|
119
|
+
//# sourceMappingURL=registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../../src/db/schema/consent-record/registry.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAEvE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9C;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,qBAAqB,CAAC,EAAE,OAAO,EAAE,GAAG,GAAG,EAAE,EAAE,eAAe;IAGxE;;;;;;;;;OASG;kCAEM,IAAI,CAAC,aAAa,EAAE,IAAI,GAAG,WAAW,GAAG,WAAW,CAAC,GAC5D,OAAO,CAAC,aAAa,CAAC,YACb,sBAAsB;;;;;;;;;IAsBjC;;;;;;;;;OASG;qCAEU,MAAM,cACN,MAAM,eACL,MAAM,UACX,MAAM;;;;;;;;;IAwCf;;;;;;OAMG;sCACqC,MAAM;;;;;;;;;IAe9C;;;;;;;OAOG;+CAES,MAAM,UACT,MAAM;;;;;;;;;IAqBf;;;;;;;OAOG;+CAES,MAAM,UACT,MAAM;;;;;;;;;EAqBhB"}
|