@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,132 @@
|
|
|
1
|
+
import type { Field } from '../../core/fields';
|
|
2
|
+
import type { C15TOptions } from '../../../types';
|
|
3
|
+
/**
|
|
4
|
+
* Generates the database table configuration for the geo-location entity.
|
|
5
|
+
*
|
|
6
|
+
* This function creates a schema definition that includes all standard geo-location 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 geo-location table customizations
|
|
11
|
+
* @param geoLocationFields - Additional fields from plugins to include in the geo-location table
|
|
12
|
+
* @returns A complete table schema definition with fields, model name, and metadata
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```typescript
|
|
16
|
+
* const locationTableSchema = getGeoLocationTable(c15tOptions);
|
|
17
|
+
* // Use the schema for migrations or data access
|
|
18
|
+
* const migrationPlans = generateMigrations(locationTableSchema);
|
|
19
|
+
* ```
|
|
20
|
+
*/
|
|
21
|
+
export declare function getGeoLocationTable(options: C15TOptions, geoLocationFields?: Record<string, Field>): {
|
|
22
|
+
/**
|
|
23
|
+
* The name of the geo-location table in the database, configurable through options
|
|
24
|
+
*/
|
|
25
|
+
entityName: string;
|
|
26
|
+
/**
|
|
27
|
+
* The ID prefix for the geo-location table
|
|
28
|
+
* Used to generate unique prefixed IDs for geo-locations
|
|
29
|
+
*/
|
|
30
|
+
entityPrefix: string;
|
|
31
|
+
/**
|
|
32
|
+
* The schema for the geo-location table
|
|
33
|
+
*/
|
|
34
|
+
schema: import("zod").ZodObject<{
|
|
35
|
+
id: import("zod").ZodString;
|
|
36
|
+
countryCode: import("zod").ZodString;
|
|
37
|
+
countryName: import("zod").ZodString;
|
|
38
|
+
regionCode: import("zod").ZodOptional<import("zod").ZodString>;
|
|
39
|
+
regionName: import("zod").ZodOptional<import("zod").ZodString>;
|
|
40
|
+
regulatoryZones: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodEnum<["GDPR", "CCPA", "CPRA", "LGPD", "PIPEDA"]>, "many">>;
|
|
41
|
+
createdAt: import("zod").ZodDefault<import("zod").ZodDate>;
|
|
42
|
+
}, "strip", import("zod").ZodTypeAny, {
|
|
43
|
+
id: string;
|
|
44
|
+
createdAt: Date;
|
|
45
|
+
countryCode: string;
|
|
46
|
+
countryName: string;
|
|
47
|
+
regionCode?: string | undefined;
|
|
48
|
+
regionName?: string | undefined;
|
|
49
|
+
regulatoryZones?: ("GDPR" | "CCPA" | "CPRA" | "LGPD" | "PIPEDA")[] | undefined;
|
|
50
|
+
}, {
|
|
51
|
+
id: string;
|
|
52
|
+
countryCode: string;
|
|
53
|
+
countryName: string;
|
|
54
|
+
createdAt?: Date | undefined;
|
|
55
|
+
regionCode?: string | undefined;
|
|
56
|
+
regionName?: string | undefined;
|
|
57
|
+
regulatoryZones?: ("GDPR" | "CCPA" | "CPRA" | "LGPD" | "PIPEDA")[] | undefined;
|
|
58
|
+
}>;
|
|
59
|
+
/**
|
|
60
|
+
* Field definitions for the geo-location table
|
|
61
|
+
*/
|
|
62
|
+
fields: {
|
|
63
|
+
/**
|
|
64
|
+
* Country code (e.g., 'US', 'DE', 'FR')
|
|
65
|
+
*/
|
|
66
|
+
countryCode: {
|
|
67
|
+
type: string;
|
|
68
|
+
required: boolean;
|
|
69
|
+
fieldName: string;
|
|
70
|
+
};
|
|
71
|
+
/**
|
|
72
|
+
* Full country name (e.g., 'United States', 'Germany', 'France')
|
|
73
|
+
*/
|
|
74
|
+
countryName: {
|
|
75
|
+
type: string;
|
|
76
|
+
required: boolean;
|
|
77
|
+
fieldName: string;
|
|
78
|
+
};
|
|
79
|
+
/**
|
|
80
|
+
* Region or state code (e.g., 'CA', 'NY', 'BY')
|
|
81
|
+
*/
|
|
82
|
+
regionCode: {
|
|
83
|
+
type: string;
|
|
84
|
+
required: boolean;
|
|
85
|
+
fieldName: string;
|
|
86
|
+
};
|
|
87
|
+
/**
|
|
88
|
+
* Full region or state name (e.g., 'California', 'New York', 'Bavaria')
|
|
89
|
+
*/
|
|
90
|
+
regionName: {
|
|
91
|
+
type: string;
|
|
92
|
+
required: boolean;
|
|
93
|
+
fieldName: string;
|
|
94
|
+
};
|
|
95
|
+
/**
|
|
96
|
+
* Array of regulatory zones that apply to this location (e.g., 'GDPR', 'CCPA')
|
|
97
|
+
* Stored as a JSON string in the database
|
|
98
|
+
*/
|
|
99
|
+
regulatoryZones: {
|
|
100
|
+
type: string;
|
|
101
|
+
required: boolean;
|
|
102
|
+
fieldName: string;
|
|
103
|
+
transformer: {
|
|
104
|
+
input: (value: string[]) => string;
|
|
105
|
+
output: (value: string) => any;
|
|
106
|
+
};
|
|
107
|
+
};
|
|
108
|
+
/**
|
|
109
|
+
* When the geo-location record was created
|
|
110
|
+
* Automatically set to current time by default
|
|
111
|
+
*/
|
|
112
|
+
createdAt: {
|
|
113
|
+
type: string;
|
|
114
|
+
defaultValue: () => Date;
|
|
115
|
+
required: boolean;
|
|
116
|
+
fieldName: string;
|
|
117
|
+
};
|
|
118
|
+
};
|
|
119
|
+
/**
|
|
120
|
+
* Add indexes for better query performance
|
|
121
|
+
*/
|
|
122
|
+
indexes: {
|
|
123
|
+
name: string;
|
|
124
|
+
fields: string[];
|
|
125
|
+
}[];
|
|
126
|
+
/**
|
|
127
|
+
* Execution order during migrations (lower numbers run first)
|
|
128
|
+
* Geo-location is a base entity that doesn't depend on other tables
|
|
129
|
+
*/
|
|
130
|
+
order: number;
|
|
131
|
+
};
|
|
132
|
+
//# sourceMappingURL=table.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../../../../src/db/schema/geo-location/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,mBAAmB,CAClC,OAAO,EAAE,WAAW,EACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC;IAIxC;;OAEG;;IAGH;;;OAGG;;IAGH;;OAEG;;;;;;;;;;;;;;;;;;;;;;;;;;IAGH;;OAEG;;QAEF;;WAEG;;;;;;QAOH;;WAEG;;;;;;QAOH;;WAEG;;;;;;QAOH;;WAEG;;;;;;QAOH;;;WAGG;;;;;;+BAOc,MAAM,EAAE;gCACP,MAAM;;;QAUxB;;;WAGG;;;;;;;;IAeJ;;OAEG;;;;;IAgBH;;;OAGG;;EAGJ"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { BaseEntityConfig } from '../types';
|
|
2
|
+
/**
|
|
3
|
+
* Geo location entity configuration
|
|
4
|
+
* @default entityName: "geoLocation", entityPrefix: "geo"
|
|
5
|
+
*/
|
|
6
|
+
export interface GeoLocationEntityConfig extends BaseEntityConfig {
|
|
7
|
+
fields?: Record<string, string> & {
|
|
8
|
+
id?: string;
|
|
9
|
+
countryCode?: string;
|
|
10
|
+
countryName?: string;
|
|
11
|
+
regionCode?: string;
|
|
12
|
+
regionName?: string;
|
|
13
|
+
regulatoryZones?: string;
|
|
14
|
+
createdAt?: string;
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/db/schema/geo-location/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAEjD;;;GAGG;AACH,MAAM,WAAW,uBAAwB,SAAQ,gBAAgB;IAChE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG;QACjC,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,UAAU,CAAC,EAAE,MAAM,CAAC;QAEpB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,SAAS,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;CACF"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Schema Module for c15t Consent Management System
|
|
3
|
+
*
|
|
4
|
+
* This module serves as the central hub for database schema definitions, validation,
|
|
5
|
+
* and transformation utilities used throughout the c15t system. It defines the structure
|
|
6
|
+
* of all database tables and provides tools to work with schema-compliant data.
|
|
7
|
+
*
|
|
8
|
+
* @remarks
|
|
9
|
+
* The Schema Module is organized into three main components:
|
|
10
|
+
*
|
|
11
|
+
* 1. Table Definitions - Individual table schemas (subject, consent, consentPurpose, etc.)
|
|
12
|
+
* 2. Schema Utilities - Functions for retrieving and working with the complete schema
|
|
13
|
+
* 3. Data Parsing - Validation and transformation of input/output data
|
|
14
|
+
*
|
|
15
|
+
* These components work together to provide a type-safe, consistent interface for
|
|
16
|
+
* interacting with the database, regardless of which database adapter is used.
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* ```typescript
|
|
20
|
+
* import {
|
|
21
|
+
* getConsentTables,
|
|
22
|
+
* parseInputData,
|
|
23
|
+
* type C15TDBSchema
|
|
24
|
+
* } from '@c15t/core/db/schema';
|
|
25
|
+
*
|
|
26
|
+
* // Get the complete schema
|
|
27
|
+
* const tables = getConsentTables(options);
|
|
28
|
+
*
|
|
29
|
+
* // Validate input data against the subject table schema
|
|
30
|
+
* const validSubjectData = parseInputData(
|
|
31
|
+
* inputData,
|
|
32
|
+
* { fields: tables.subject.fields }
|
|
33
|
+
* );
|
|
34
|
+
* ```
|
|
35
|
+
*/
|
|
36
|
+
/**
|
|
37
|
+
* Table definitions for core c15t entities
|
|
38
|
+
*
|
|
39
|
+
* These exports provide the schema definitions for each table in the c15t database.
|
|
40
|
+
* Each table definition includes field specifications, relationships, and metadata.
|
|
41
|
+
*/
|
|
42
|
+
export * from './audit-log';
|
|
43
|
+
export * from './consent-geo-location';
|
|
44
|
+
export * from './consent-policy';
|
|
45
|
+
export * from './consent-purpose-junction';
|
|
46
|
+
export * from './consent-purpose';
|
|
47
|
+
export * from './consent-record';
|
|
48
|
+
export * from './consent-withdrawal';
|
|
49
|
+
export * from './consent';
|
|
50
|
+
export * from './domain';
|
|
51
|
+
export * from './geo-location';
|
|
52
|
+
export * from './subject';
|
|
53
|
+
/**
|
|
54
|
+
* Type definitions for database schema configuration
|
|
55
|
+
*
|
|
56
|
+
* These exports provide interfaces for configuring database entities
|
|
57
|
+
* and are used throughout the application for type-safe schema definition.
|
|
58
|
+
*
|
|
59
|
+
* @see {@link BaseEntityConfig} - Base configuration for all entities
|
|
60
|
+
* @see {@link TablesConfig} - Configuration for all database tables
|
|
61
|
+
*/
|
|
62
|
+
export * from './types';
|
|
63
|
+
/**
|
|
64
|
+
* Schema utilities for working with the complete database schema
|
|
65
|
+
*
|
|
66
|
+
* These exports provide functions for retrieving the complete schema and
|
|
67
|
+
* working with table definitions at a higher level.
|
|
68
|
+
*
|
|
69
|
+
* @see {@link getConsentTables} - Main function to get the complete schema
|
|
70
|
+
* @see {@link C15TDBSchema} - Type representing the complete database schema
|
|
71
|
+
*/
|
|
72
|
+
export { getConsentTables, type C15TDBSchema } from './definition';
|
|
73
|
+
/**
|
|
74
|
+
* Data parsing and validation utilities
|
|
75
|
+
*
|
|
76
|
+
* These exports provide functions for validating and transforming data
|
|
77
|
+
* according to the schema definitions. They ensure type safety and data integrity
|
|
78
|
+
* when working with database records.
|
|
79
|
+
*
|
|
80
|
+
* @see {@link parseInputData} - Validates input data against a table schema
|
|
81
|
+
* @see {@link parseEntityOutputData} - Validates output data against a table schema
|
|
82
|
+
* @see {@link getAllFields} - Retrieves all fields from a schema
|
|
83
|
+
*/
|
|
84
|
+
export { parseInputData, parseEntityOutputData, getAllFields, } from './parser';
|
|
85
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/db/schema/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAGH;;;;;GAKG;AACH,cAAc,aAAa,CAAC;AAC5B,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC;AACjC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC;AAG1B;;;;;;;;GAQG;AACH,cAAc,SAAS,CAAC;AAGxB;;;;;;;;GAQG;AACH,OAAO,EAAE,gBAAgB,EAAE,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;AAGnE;;;;;;;;;;GAUG;AACH,OAAO,EACN,cAAc,EACd,qBAAqB,EACrB,YAAY,GACZ,MAAM,UAAU,CAAC"}
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
import type { C15TOptions } from '../../types';
|
|
2
|
+
import type { Field } from '../core/fields';
|
|
3
|
+
/**
|
|
4
|
+
* Parses and transforms output data according to schema field definitions.
|
|
5
|
+
*
|
|
6
|
+
* This function filters and processes entity data being returned from the database,
|
|
7
|
+
* ensuring that only fields marked as returnable are included in the output.
|
|
8
|
+
*
|
|
9
|
+
* @typeParam EntityType - The type of entity being processed
|
|
10
|
+
*
|
|
11
|
+
* @param data - The raw data object retrieved from the database
|
|
12
|
+
* @param schema - The schema containing field definitions
|
|
13
|
+
* @param schema.fields - Record of field definitions for the entity
|
|
14
|
+
*
|
|
15
|
+
* @returns The processed data object with appropriate fields included or excluded
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* ```typescript
|
|
19
|
+
* // Get subject data from database
|
|
20
|
+
* const subjectData = { id: 'sub_x1pftyoufsm7xgo1kv', };
|
|
21
|
+
*
|
|
22
|
+
* // Define schema with password field marked as not returnable
|
|
23
|
+
* const subjectSchema = {
|
|
24
|
+
* fields: {
|
|
25
|
+
* id: { name: 'id', type: 'string', returned: true },
|
|
26
|
+
* }
|
|
27
|
+
* };
|
|
28
|
+
*
|
|
29
|
+
* // Process the data - password will be excluded
|
|
30
|
+
* const processedData = parseEntityOutputData(subjectData, subjectSchema);
|
|
31
|
+
* // Result: { id: 'sub_x1pftyoufsm7xgo1kv',}
|
|
32
|
+
* ```
|
|
33
|
+
*
|
|
34
|
+
* @remarks
|
|
35
|
+
* - Fields marked with `returned: false` will be excluded from the output
|
|
36
|
+
* - Fields not found in the schema will be passed through unchanged
|
|
37
|
+
* - The function preserves the original type of the input data
|
|
38
|
+
*/
|
|
39
|
+
export declare function parseEntityOutputData<EntityType extends Record<string, unknown>>(data: EntityType, schema: {
|
|
40
|
+
fields: Record<string, Field>;
|
|
41
|
+
}): EntityType;
|
|
42
|
+
/**
|
|
43
|
+
* Type representing a field conflict resolution strategy
|
|
44
|
+
*/
|
|
45
|
+
export type FieldConflictResolution = {
|
|
46
|
+
/**
|
|
47
|
+
* How to handle conflicting field definitions
|
|
48
|
+
* - 'error': Throw an error when conflicts are detected
|
|
49
|
+
* - 'warn': Log a warning and use the last definition
|
|
50
|
+
* - 'silent': Silently use the last definition
|
|
51
|
+
*/
|
|
52
|
+
strategy: 'error' | 'warn' | 'silent';
|
|
53
|
+
/**
|
|
54
|
+
* Optional callback for logging warnings
|
|
55
|
+
* Only used when strategy is 'warn'
|
|
56
|
+
*/
|
|
57
|
+
onWarning?: (message: string) => void;
|
|
58
|
+
};
|
|
59
|
+
/**
|
|
60
|
+
* Retrieves all fields for a specific table, combining base configuration and plugin fields
|
|
61
|
+
*
|
|
62
|
+
* @param options - The C15T configuration options
|
|
63
|
+
* @param table - The table name to get fields for
|
|
64
|
+
* @param conflictResolution - How to handle conflicting field definitions
|
|
65
|
+
* @returns Combined fields from configuration and plugins
|
|
66
|
+
*
|
|
67
|
+
* @throws {C15TError} When field conflicts are detected and strategy is 'error'
|
|
68
|
+
*
|
|
69
|
+
* @example
|
|
70
|
+
* ```typescript
|
|
71
|
+
* // Get fields with conflict resolution
|
|
72
|
+
* const fields = getAllFields(options, 'subject', {
|
|
73
|
+
* strategy: 'warn',
|
|
74
|
+
* onWarning: (msg) => console.warn(msg)
|
|
75
|
+
* });
|
|
76
|
+
* ```
|
|
77
|
+
*/
|
|
78
|
+
export declare function getAllFields(options: C15TOptions, table: string, conflictResolution?: FieldConflictResolution): Record<string, Field>;
|
|
79
|
+
/**
|
|
80
|
+
* Configuration for handling extra fields in input data
|
|
81
|
+
*/
|
|
82
|
+
export type ExtraFieldsConfig = {
|
|
83
|
+
/**
|
|
84
|
+
* How to handle fields not defined in the schema
|
|
85
|
+
* - 'error': Throw an error when extra fields are detected
|
|
86
|
+
* - 'warn': Log a warning and include the fields
|
|
87
|
+
* - 'silent': Silently include the fields
|
|
88
|
+
* - 'drop': Silently drop the fields
|
|
89
|
+
*/
|
|
90
|
+
strategy: 'error' | 'warn' | 'silent' | 'drop';
|
|
91
|
+
/**
|
|
92
|
+
* Optional callback for logging warnings
|
|
93
|
+
* Only used when strategy is 'warn'
|
|
94
|
+
*/
|
|
95
|
+
onWarning?: (message: string) => void;
|
|
96
|
+
/**
|
|
97
|
+
* Optional list of field names that are always allowed
|
|
98
|
+
* regardless of schema definition
|
|
99
|
+
*/
|
|
100
|
+
allowedExtraFields?: string[];
|
|
101
|
+
};
|
|
102
|
+
/**
|
|
103
|
+
* Parses and validates input data according to schema field definitions.
|
|
104
|
+
*
|
|
105
|
+
* This function processes data being sent to the database, ensuring it meets
|
|
106
|
+
* schema requirements by:
|
|
107
|
+
* - Validating required fields
|
|
108
|
+
* - Applying transformations
|
|
109
|
+
* - Setting default values
|
|
110
|
+
* - Handling field-specific validation
|
|
111
|
+
*
|
|
112
|
+
* @typeParam EntityType - The type of entity being processed
|
|
113
|
+
*
|
|
114
|
+
* @param data - The input data to validate and transform
|
|
115
|
+
* @param schema - The schema to validate against
|
|
116
|
+
* @param schema.fields - Record of field definitions
|
|
117
|
+
* @param schema.action - The current operation ('create' or 'update')
|
|
118
|
+
* @param extraFieldsConfig - How to handle fields not defined in the schema
|
|
119
|
+
*
|
|
120
|
+
* @returns The validated and transformed data
|
|
121
|
+
*
|
|
122
|
+
* @throws {C15TError} When a required field is missing during creation
|
|
123
|
+
* @throws {C15TError} When extra fields are detected and strategy is 'error'
|
|
124
|
+
*
|
|
125
|
+
* @example
|
|
126
|
+
* ```typescript
|
|
127
|
+
* // Input data from client
|
|
128
|
+
* const inputData = {
|
|
129
|
+
* email: 'subject@example.com',
|
|
130
|
+
* role: 'subject',
|
|
131
|
+
* extraField: 'value' // Field not in schema
|
|
132
|
+
* };
|
|
133
|
+
*
|
|
134
|
+
* // Schema with field definitions
|
|
135
|
+
* const subjectSchema = {
|
|
136
|
+
* fields: {
|
|
137
|
+
* id: {
|
|
138
|
+
* name: 'id',
|
|
139
|
+
* type: 'string',
|
|
140
|
+
* defaultValue: () => crypto.randomUUID()
|
|
141
|
+
* },
|
|
142
|
+
* email: {
|
|
143
|
+
* name: 'email',
|
|
144
|
+
* type: 'string',
|
|
145
|
+
* required: true,
|
|
146
|
+
* transform: {
|
|
147
|
+
* input: (value) => value.toLowerCase()
|
|
148
|
+
* }
|
|
149
|
+
* },
|
|
150
|
+
* role: {
|
|
151
|
+
* name: 'role',
|
|
152
|
+
* type: 'string',
|
|
153
|
+
* defaultValue: 'subject'
|
|
154
|
+
* },
|
|
155
|
+
* createdAt: {
|
|
156
|
+
* name: 'created_at',
|
|
157
|
+
* type: 'date',
|
|
158
|
+
* defaultValue: () => new Date(),
|
|
159
|
+
* input: false
|
|
160
|
+
* }
|
|
161
|
+
* },
|
|
162
|
+
* action: 'create'
|
|
163
|
+
* };
|
|
164
|
+
*
|
|
165
|
+
* // Process the data with extra fields config
|
|
166
|
+
* const validatedData = parseInputData(inputData, subjectSchema, {
|
|
167
|
+
* strategy: 'warn',
|
|
168
|
+
* onWarning: (msg) => console.warn(msg),
|
|
169
|
+
* allowedExtraFields: ['metadata']
|
|
170
|
+
* });
|
|
171
|
+
* ```
|
|
172
|
+
*
|
|
173
|
+
* @remarks
|
|
174
|
+
* - During 'create' operations, required fields must be present or an error is thrown
|
|
175
|
+
* - Default values are only applied during 'create' operations
|
|
176
|
+
* - Fields marked with `input: false` are excluded unless they have a default value
|
|
177
|
+
* - The function handles both modern transform functions and legacy validators
|
|
178
|
+
*/
|
|
179
|
+
export declare function parseInputData<EntityType extends Record<string, unknown>>(data: EntityType, schema: {
|
|
180
|
+
fields: Record<string, Field>;
|
|
181
|
+
action?: 'create' | 'update';
|
|
182
|
+
}, extraFieldsConfig?: ExtraFieldsConfig): Partial<EntityType>;
|
|
183
|
+
//# sourceMappingURL=parser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../../src/db/schema/parser.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAoB,MAAM,SAAS,CAAC;AAC7D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAE5C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,wBAAgB,qBAAqB,CACpC,UAAU,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAE1C,IAAI,EAAE,UAAU,EAChB,MAAM,EAAE;IACP,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;CAC9B,GAkBoB,UAAU,CAC/B;AAED;;GAEG;AACH,MAAM,MAAM,uBAAuB,GAAG;IACrC;;;;;OAKG;IACH,QAAQ,EAAE,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAC;IAEtC;;;OAGG;IACH,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACtC,CAAC;AAEF;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,YAAY,CAC3B,OAAO,EAAE,WAAW,EACpB,KAAK,EAAE,MAAM,EACb,kBAAkB,GAAE,uBAA+C,yBA6DnE;AAED;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC/B;;;;;;OAMG;IACH,QAAQ,EAAE,OAAO,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAC;IAE/C;;;OAGG;IACH,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAEtC;;;OAGG;IACH,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC9B,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4EG;AACH,wBAAgB,cAAc,CAAC,UAAU,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACxE,IAAI,EAAE,UAAU,EAChB,MAAM,EAAE;IACP,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC9B,MAAM,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;CAC7B,EACD,iBAAiB,GAAE,iBAAyC,GAuIvC,OAAO,CAAC,UAAU,CAAC,CACxC"}
|