@c15t/backend 1.8.0 → 2.0.0-rc.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build.log +44 -78
- package/CHANGELOG.md +13 -0
- package/dist/cache/adapters/cloudflare-kv.d.ts +46 -0
- package/dist/cache/adapters/cloudflare-kv.d.ts.map +1 -0
- package/dist/cache/adapters/index.d.ts +11 -0
- package/dist/cache/adapters/index.d.ts.map +1 -0
- package/dist/cache/adapters/memory.d.ts +47 -0
- package/dist/cache/adapters/memory.d.ts.map +1 -0
- package/dist/cache/adapters/upstash-redis.d.ts +75 -0
- package/dist/cache/adapters/upstash-redis.d.ts.map +1 -0
- package/dist/cache/gvl-resolver.d.ts +86 -0
- package/dist/cache/gvl-resolver.d.ts.map +1 -0
- package/dist/cache/index.d.ts +13 -0
- package/dist/cache/index.d.ts.map +1 -0
- package/dist/cache/keys.d.ts +51 -0
- package/dist/cache/keys.d.ts.map +1 -0
- package/dist/cache/types.d.ts +61 -0
- package/dist/cache/types.d.ts.map +1 -0
- package/dist/cache.cjs +530 -0
- package/dist/cache.js +467 -0
- package/dist/core.cjs +2569 -3840
- package/dist/core.d.ts +19 -409
- package/dist/core.d.ts.map +1 -1
- package/dist/core.js +2378 -3680
- package/dist/db/adapters/drizzle.cjs +36 -0
- package/dist/db/adapters/drizzle.d.ts.map +1 -0
- package/dist/db/adapters/index.d.ts.map +1 -0
- package/dist/db/adapters/kysely.cjs +36 -0
- package/dist/db/adapters/kysely.d.ts.map +1 -0
- package/dist/db/adapters/mongo.cjs +36 -0
- package/dist/db/adapters/mongo.d.ts.map +1 -0
- package/dist/db/adapters/prisma.cjs +36 -0
- package/dist/db/adapters/prisma.d.ts.map +1 -0
- package/dist/db/adapters/typeorm.cjs +36 -0
- package/dist/db/adapters/typeorm.d.ts.map +1 -0
- package/dist/db/adapters.cjs +18 -0
- package/dist/db/migrator/index.d.ts.map +1 -0
- package/dist/db/migrator.cjs +61 -0
- package/dist/db/registry/consent-policy.d.ts +23 -0
- package/dist/db/registry/consent-policy.d.ts.map +1 -0
- package/dist/db/registry/consent-purpose.d.ts +11 -0
- package/dist/db/registry/consent-purpose.d.ts.map +1 -0
- package/dist/db/registry/domain.d.ts +18 -0
- package/dist/db/registry/domain.d.ts.map +1 -0
- package/dist/db/registry/index.d.ts +57 -0
- package/dist/db/registry/index.d.ts.map +1 -0
- package/dist/db/registry/subject.d.ts +32 -0
- package/dist/db/registry/subject.d.ts.map +1 -0
- package/dist/db/registry/types.d.ts +10 -0
- package/dist/db/registry/types.d.ts.map +1 -0
- package/dist/db/registry/utils/generate-id.d.ts +25 -0
- package/dist/db/registry/utils/generate-id.d.ts.map +1 -0
- package/dist/db/registry/utils.d.ts +25 -0
- package/dist/db/registry/utils.d.ts.map +1 -0
- package/dist/db/schema/1.0.0/audit-log.d.ts +14 -0
- package/dist/db/schema/1.0.0/audit-log.d.ts.map +1 -0
- package/dist/db/schema/1.0.0/consent-policy.d.ts +13 -0
- package/dist/db/schema/1.0.0/consent-policy.d.ts.map +1 -0
- package/dist/db/schema/1.0.0/consent-purpose.d.ts +13 -0
- package/dist/db/schema/1.0.0/consent-purpose.d.ts.map +1 -0
- package/dist/db/schema/1.0.0/consent-record.d.ts +9 -0
- package/dist/db/schema/1.0.0/consent-record.d.ts.map +1 -0
- package/dist/db/schema/1.0.0/consent.d.ts +18 -0
- package/dist/db/schema/1.0.0/consent.d.ts.map +1 -0
- package/dist/db/schema/1.0.0/domain.d.ts +11 -0
- package/dist/db/schema/1.0.0/domain.d.ts.map +1 -0
- package/dist/db/schema/1.0.0/index.d.ts +1506 -0
- package/dist/db/schema/1.0.0/index.d.ts.map +1 -0
- package/dist/db/schema/1.0.0/subject.d.ts +11 -0
- package/dist/db/schema/1.0.0/subject.d.ts.map +1 -0
- package/dist/db/schema/2.0.0/audit-log.d.ts +16 -0
- package/dist/db/schema/2.0.0/audit-log.d.ts.map +1 -0
- package/dist/db/schema/2.0.0/consent-policy.d.ts +13 -0
- package/dist/db/schema/2.0.0/consent-policy.d.ts.map +1 -0
- package/dist/db/schema/2.0.0/consent-purpose.d.ts +10 -0
- package/dist/db/schema/2.0.0/consent-purpose.d.ts.map +1 -0
- package/dist/db/schema/2.0.0/consent.d.ts +24 -0
- package/dist/db/schema/2.0.0/consent.d.ts.map +1 -0
- package/dist/db/schema/2.0.0/domain.d.ts +10 -0
- package/dist/db/schema/2.0.0/domain.d.ts.map +1 -0
- package/dist/db/schema/2.0.0/index.d.ts +586 -0
- package/dist/db/schema/2.0.0/index.d.ts.map +1 -0
- package/dist/db/schema/2.0.0/subject.d.ts +12 -0
- package/dist/db/schema/2.0.0/subject.d.ts.map +1 -0
- package/dist/db/schema/index.d.ts +2664 -0
- package/dist/db/schema/index.d.ts.map +1 -0
- package/dist/db/schema.cjs +359 -0
- package/dist/db/schema.js +261 -0
- package/dist/db/tenant-scope.d.ts +20 -0
- package/dist/db/tenant-scope.d.ts.map +1 -0
- package/dist/define-config.cjs +36 -0
- package/dist/define-config.d.ts.map +1 -0
- package/dist/handlers/consent/check.handler.d.ts +24 -0
- package/dist/handlers/consent/check.handler.d.ts.map +1 -0
- package/dist/handlers/consent/index.d.ts +11 -339
- package/dist/handlers/consent/index.d.ts.map +1 -1
- package/dist/handlers/init/geo.d.ts +34 -0
- package/dist/handlers/init/geo.d.ts.map +1 -0
- package/dist/handlers/init/index.d.ts +157 -0
- package/dist/handlers/init/index.d.ts.map +1 -0
- package/dist/handlers/init/translations.d.ts +28 -0
- package/dist/handlers/init/translations.d.ts.map +1 -0
- package/dist/handlers/status/index.d.ts +7 -0
- package/dist/handlers/status/index.d.ts.map +1 -0
- package/dist/handlers/status/status.handler.d.ts +26 -0
- package/dist/handlers/status/status.handler.d.ts.map +1 -0
- package/dist/handlers/subject/get.handler.d.ts +32 -0
- package/dist/handlers/subject/get.handler.d.ts.map +1 -0
- package/dist/handlers/subject/index.d.ts +10 -0
- package/dist/handlers/subject/index.d.ts.map +1 -0
- package/dist/handlers/subject/list.handler.d.ts +31 -0
- package/dist/handlers/subject/list.handler.d.ts.map +1 -0
- package/dist/handlers/subject/patch.handler.d.ts +22 -0
- package/dist/handlers/subject/patch.handler.d.ts.map +1 -0
- package/dist/handlers/subject/post.handler.d.ts +25 -0
- package/dist/handlers/subject/post.handler.d.ts.map +1 -0
- package/dist/handlers/utils/consent-enrichment.d.ts +52 -0
- package/dist/handlers/utils/consent-enrichment.d.ts.map +1 -0
- package/dist/init.d.ts +20 -26
- package/dist/init.d.ts.map +1 -1
- package/dist/middleware/auth/index.d.ts +7 -0
- package/dist/middleware/auth/index.d.ts.map +1 -0
- package/dist/middleware/auth/validate-api-key.d.ts +49 -0
- package/dist/middleware/auth/validate-api-key.d.ts.map +1 -0
- package/dist/middleware/cors/cors.d.ts +13 -17
- package/dist/middleware/cors/cors.d.ts.map +1 -1
- package/dist/middleware/cors/is-origin-trusted.d.ts.map +1 -1
- package/dist/middleware/cors/process-cors.d.ts +1 -1
- package/dist/middleware/cors/process-cors.d.ts.map +1 -1
- package/dist/middleware/openapi/config.d.ts +16 -2
- package/dist/middleware/openapi/config.d.ts.map +1 -1
- package/dist/middleware/openapi/handlers.d.ts +1 -24
- package/dist/middleware/openapi/handlers.d.ts.map +1 -1
- package/dist/middleware/openapi/index.d.ts +3 -2
- package/dist/middleware/openapi/index.d.ts.map +1 -1
- package/dist/middleware/process-ip/index.d.ts +12 -0
- package/dist/middleware/process-ip/index.d.ts.map +1 -0
- package/dist/router.cjs +1288 -1776
- package/dist/router.d.ts +9 -363
- package/dist/router.d.ts.map +1 -1
- package/dist/router.js +1277 -1658
- package/dist/routes/consent.d.ts +16 -0
- package/dist/routes/consent.d.ts.map +1 -0
- package/dist/routes/index.d.ts +10 -0
- package/dist/routes/index.d.ts.map +1 -0
- package/dist/routes/init.d.ts +16 -0
- package/dist/routes/init.d.ts.map +1 -0
- package/dist/routes/status.d.ts +16 -0
- package/dist/routes/status.d.ts.map +1 -0
- package/dist/routes/subject.d.ts +16 -0
- package/dist/routes/subject.d.ts.map +1 -0
- package/dist/types/api.d.ts +5 -1
- package/dist/types/api.d.ts.map +1 -1
- package/dist/types/index.d.ts +253 -14
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types.cjs +37 -0
- package/dist/types.js +3 -0
- package/dist/utils/create-telemetry-options.d.ts +71 -0
- package/dist/utils/create-telemetry-options.d.ts.map +1 -0
- package/dist/utils/env.d.ts.map +1 -0
- package/dist/utils/extract-error-message.d.ts +9 -0
- package/dist/utils/extract-error-message.d.ts.map +1 -0
- package/dist/utils/index.d.ts +4 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/instrumentation.d.ts +70 -0
- package/dist/utils/instrumentation.d.ts.map +1 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/metrics.d.ts +133 -0
- package/dist/utils/metrics.d.ts.map +1 -0
- package/dist/version.d.ts +1 -1
- package/dist/version.d.ts.map +1 -1
- package/package.json +143 -224
- package/rslib.config.ts +11 -34
- package/src/cache/adapters/cloudflare-kv.ts +71 -0
- package/src/cache/adapters/index.ts +22 -0
- package/src/cache/adapters/memory.ts +111 -0
- package/src/cache/adapters/upstash-redis.ts +113 -0
- package/src/cache/gvl-resolver.ts +289 -0
- package/src/cache/index.ts +34 -0
- package/src/cache/keys.ts +68 -0
- package/src/cache/types.ts +66 -0
- package/src/core.ts +254 -352
- package/src/db/migrator/index.ts +80 -0
- package/src/db/registry/consent-policy.test.ts +451 -0
- package/src/db/registry/consent-policy.ts +82 -0
- package/src/db/registry/consent-purpose.test.ts +428 -0
- package/src/db/registry/consent-purpose.ts +61 -0
- package/src/db/registry/domain.test.ts +445 -0
- package/src/db/registry/domain.ts +91 -0
- package/src/db/registry/index.ts +14 -0
- package/src/db/registry/subject.test.ts +388 -0
- package/src/db/registry/subject.ts +129 -0
- package/src/db/registry/types.ts +10 -0
- package/src/db/registry/utils/generate-id.test.ts +216 -0
- package/src/db/registry/utils/generate-id.ts +133 -0
- package/src/db/registry/utils.ts +133 -0
- package/src/db/schema/1.0.0/audit-log.ts +15 -0
- package/src/db/schema/1.0.0/consent-policy.ts +14 -0
- package/src/db/schema/1.0.0/consent-purpose.ts +14 -0
- package/src/db/schema/1.0.0/consent-record.ts +10 -0
- package/src/db/schema/1.0.0/consent.ts +20 -0
- package/src/db/schema/1.0.0/domain.ts +12 -0
- package/src/db/schema/1.0.0/index.ts +48 -0
- package/src/db/schema/1.0.0/subject.ts +12 -0
- package/src/db/schema/2.0.0/audit-log.ts +18 -0
- package/src/db/schema/2.0.0/consent-policy.ts +28 -0
- package/src/db/schema/2.0.0/consent-purpose.ts +12 -0
- package/src/db/schema/2.0.0/consent.ts +26 -0
- package/src/db/schema/2.0.0/domain.ts +12 -0
- package/src/db/schema/2.0.0/index.ts +47 -0
- package/src/db/schema/2.0.0/subject.ts +14 -0
- package/src/db/schema/index.ts +15 -0
- package/src/db/tenant-scope.test.ts +750 -0
- package/src/db/tenant-scope.ts +103 -0
- package/src/handlers/consent/check.handler.ts +126 -0
- package/src/handlers/consent/index.ts +11 -10
- package/src/handlers/init/geo.test.ts +317 -0
- package/src/handlers/init/geo.ts +195 -0
- package/src/handlers/init/index.test.ts +205 -0
- package/src/handlers/init/index.ts +114 -0
- package/src/handlers/init/translations.test.ts +121 -0
- package/src/handlers/init/translations.ts +72 -0
- package/src/handlers/status/index.ts +7 -0
- package/src/handlers/status/status.handler.test.ts +155 -0
- package/src/handlers/status/status.handler.ts +51 -0
- package/src/handlers/subject/get.handler.ts +93 -0
- package/src/handlers/subject/index.ts +10 -0
- package/src/handlers/subject/list.handler.ts +93 -0
- package/src/handlers/subject/patch.handler.ts +122 -0
- package/src/handlers/subject/post.handler.test.ts +294 -0
- package/src/handlers/subject/post.handler.ts +254 -0
- package/src/handlers/utils/consent-enrichment.test.ts +380 -0
- package/src/handlers/utils/consent-enrichment.ts +218 -0
- package/src/init.test.ts +126 -0
- package/src/init.ts +70 -297
- package/src/middleware/auth/index.ts +11 -0
- package/src/middleware/auth/validate-api-key.test.ts +86 -0
- package/src/middleware/auth/validate-api-key.ts +107 -0
- package/src/middleware/cors/cors.test.ts +96 -380
- package/src/middleware/cors/cors.ts +88 -97
- package/src/middleware/cors/is-origin-trusted.ts +2 -1
- package/src/middleware/cors/process-cors.ts +1 -1
- package/src/middleware/openapi/config.ts +8 -6
- package/src/middleware/openapi/handlers.ts +2 -100
- package/src/middleware/openapi/index.ts +3 -2
- package/src/middleware/process-ip/index.test.ts +195 -0
- package/src/middleware/process-ip/index.ts +199 -0
- package/src/router.ts +14 -7
- package/src/routes/consent.ts +52 -0
- package/src/routes/index.ts +10 -0
- package/src/routes/init.ts +102 -0
- package/src/routes/status.ts +46 -0
- package/src/routes/subject.ts +152 -0
- package/src/types/api.ts +17 -2
- package/src/types/index.ts +288 -23
- package/src/utils/create-telemetry-options.test.ts +302 -0
- package/src/utils/create-telemetry-options.ts +229 -0
- package/src/utils/extract-error-message.ts +21 -0
- package/src/utils/index.ts +3 -0
- package/src/utils/instrumentation.test.ts +185 -0
- package/src/utils/instrumentation.ts +196 -0
- package/src/utils/logger.ts +41 -0
- package/src/utils/metrics.test.ts +323 -0
- package/src/utils/metrics.ts +402 -0
- package/src/utils/telemetry-pii.test.ts +325 -0
- package/src/version.ts +1 -1
- package/tsconfig.json +2 -4
- package/LICENSE.md +0 -595
- package/dist/__tests__/server.test.d.ts +0 -2
- package/dist/__tests__/server.test.d.ts.map +0 -1
- package/dist/contracts/consent/identify.contract.d.ts +0 -24
- package/dist/contracts/consent/identify.contract.d.ts.map +0 -1
- package/dist/contracts/consent/index.d.ts +0 -340
- package/dist/contracts/consent/index.d.ts.map +0 -1
- package/dist/contracts/consent/index.test.d.ts +0 -2
- package/dist/contracts/consent/index.test.d.ts.map +0 -1
- package/dist/contracts/consent/post.contract.d.ts +0 -117
- package/dist/contracts/consent/post.contract.d.ts.map +0 -1
- package/dist/contracts/consent/post.contract.test.d.ts +0 -2
- package/dist/contracts/consent/post.contract.test.d.ts.map +0 -1
- package/dist/contracts/consent/show-banner.contract.d.ts +0 -123
- package/dist/contracts/consent/show-banner.contract.d.ts.map +0 -1
- package/dist/contracts/consent/show-banner.contract.test.d.ts +0 -2
- package/dist/contracts/consent/show-banner.contract.test.d.ts.map +0 -1
- package/dist/contracts/consent/verify.contract.d.ts +0 -81
- package/dist/contracts/consent/verify.contract.d.ts.map +0 -1
- package/dist/contracts/consent/verify.contract.test.d.ts +0 -2
- package/dist/contracts/consent/verify.contract.test.d.ts.map +0 -1
- package/dist/contracts/index.d.ts +0 -731
- package/dist/contracts/index.d.ts.map +0 -1
- package/dist/contracts/meta/index.d.ts +0 -23
- package/dist/contracts/meta/index.d.ts.map +0 -1
- package/dist/contracts/meta/index.test.d.ts +0 -2
- package/dist/contracts/meta/index.test.d.ts.map +0 -1
- package/dist/contracts/meta/status.contract.d.ts +0 -22
- package/dist/contracts/meta/status.contract.d.ts.map +0 -1
- package/dist/contracts/meta/status.contract.test.d.ts +0 -2
- package/dist/contracts/meta/status.contract.test.d.ts.map +0 -1
- package/dist/contracts/shared/jurisdiction.schema.d.ts +0 -36
- package/dist/contracts/shared/jurisdiction.schema.d.ts.map +0 -1
- package/dist/contracts.cjs +0 -799
- package/dist/contracts.js +0 -636
- package/dist/handlers/consent/identify.handler.d.ts +0 -23
- package/dist/handlers/consent/identify.handler.d.ts.map +0 -1
- package/dist/handlers/consent/identify.handler.test.d.ts +0 -2
- package/dist/handlers/consent/identify.handler.test.d.ts.map +0 -1
- package/dist/handlers/consent/post.handler.d.ts +0 -139
- package/dist/handlers/consent/post.handler.d.ts.map +0 -1
- package/dist/handlers/consent/show-banner/geo.d.ts +0 -10
- package/dist/handlers/consent/show-banner/geo.d.ts.map +0 -1
- package/dist/handlers/consent/show-banner/geo.test.d.ts +0 -2
- package/dist/handlers/consent/show-banner/geo.test.d.ts.map +0 -1
- package/dist/handlers/consent/show-banner/handler.d.ts +0 -126
- package/dist/handlers/consent/show-banner/handler.d.ts.map +0 -1
- package/dist/handlers/consent/show-banner/handler.test.d.ts +0 -2
- package/dist/handlers/consent/show-banner/handler.test.d.ts.map +0 -1
- package/dist/handlers/consent/show-banner/translations.d.ts +0 -13
- package/dist/handlers/consent/show-banner/translations.d.ts.map +0 -1
- package/dist/handlers/consent/show-banner/translations.test.d.ts +0 -2
- package/dist/handlers/consent/show-banner/translations.test.d.ts.map +0 -1
- package/dist/handlers/consent/verify.handler.d.ts +0 -103
- package/dist/handlers/consent/verify.handler.d.ts.map +0 -1
- package/dist/handlers/meta/index.d.ts +0 -23
- package/dist/handlers/meta/index.d.ts.map +0 -1
- package/dist/handlers/meta/status.handler.d.ts +0 -21
- package/dist/handlers/meta/status.handler.d.ts.map +0 -1
- package/dist/middleware/cors/cors.test.d.ts +0 -2
- package/dist/middleware/cors/cors.test.d.ts.map +0 -1
- package/dist/middleware/cors/is-origin-trusted.test.d.ts +0 -2
- package/dist/middleware/cors/is-origin-trusted.test.d.ts.map +0 -1
- package/dist/pkgs/api-router/hooks/__tests__/processor.test.d.ts +0 -2
- package/dist/pkgs/api-router/hooks/__tests__/processor.test.d.ts.map +0 -1
- package/dist/pkgs/api-router/hooks/processor.d.ts +0 -87
- package/dist/pkgs/api-router/hooks/processor.d.ts.map +0 -1
- package/dist/pkgs/api-router/telemetry.d.ts +0 -15
- package/dist/pkgs/api-router/telemetry.d.ts.map +0 -1
- package/dist/pkgs/api-router/types/router-props.d.ts +0 -32
- package/dist/pkgs/api-router/types/router-props.d.ts.map +0 -1
- package/dist/pkgs/api-router/utils/ip.d.ts +0 -44
- package/dist/pkgs/api-router/utils/ip.d.ts.map +0 -1
- package/dist/pkgs/data-model/fields/field-factory.d.ts +0 -151
- package/dist/pkgs/data-model/fields/field-factory.d.ts.map +0 -1
- package/dist/pkgs/data-model/fields/field-inference.d.ts +0 -76
- package/dist/pkgs/data-model/fields/field-inference.d.ts.map +0 -1
- package/dist/pkgs/data-model/fields/field-types.d.ts +0 -182
- package/dist/pkgs/data-model/fields/field-types.d.ts.map +0 -1
- package/dist/pkgs/data-model/fields/id-generator.d.ts +0 -19
- package/dist/pkgs/data-model/fields/id-generator.d.ts.map +0 -1
- package/dist/pkgs/data-model/fields/index.cjs +0 -159
- package/dist/pkgs/data-model/fields/index.d.ts +0 -13
- package/dist/pkgs/data-model/fields/index.d.ts.map +0 -1
- package/dist/pkgs/data-model/fields/index.js +0 -106
- package/dist/pkgs/data-model/fields/superjson-utils.d.ts +0 -12
- package/dist/pkgs/data-model/fields/superjson-utils.d.ts.map +0 -1
- package/dist/pkgs/data-model/fields/zod-fields.d.ts +0 -331
- package/dist/pkgs/data-model/fields/zod-fields.d.ts.map +0 -1
- package/dist/pkgs/data-model/hooks/create-hooks.d.ts +0 -32
- package/dist/pkgs/data-model/hooks/create-hooks.d.ts.map +0 -1
- package/dist/pkgs/data-model/hooks/index.d.ts +0 -40
- package/dist/pkgs/data-model/hooks/index.d.ts.map +0 -1
- package/dist/pkgs/data-model/hooks/types.d.ts +0 -134
- package/dist/pkgs/data-model/hooks/types.d.ts.map +0 -1
- package/dist/pkgs/data-model/hooks/update-hooks.d.ts +0 -33
- package/dist/pkgs/data-model/hooks/update-hooks.d.ts.map +0 -1
- package/dist/pkgs/data-model/hooks/update-many-hooks.d.ts +0 -55
- package/dist/pkgs/data-model/hooks/update-many-hooks.d.ts.map +0 -1
- package/dist/pkgs/data-model/hooks/utils.d.ts +0 -62
- package/dist/pkgs/data-model/hooks/utils.d.ts.map +0 -1
- package/dist/pkgs/data-model/hooks/with-hooks-factory.d.ts +0 -33
- package/dist/pkgs/data-model/hooks/with-hooks-factory.d.ts.map +0 -1
- package/dist/pkgs/data-model/index.cjs +0 -1603
- package/dist/pkgs/data-model/index.d.ts +0 -10
- package/dist/pkgs/data-model/index.d.ts.map +0 -1
- package/dist/pkgs/data-model/index.js +0 -1469
- package/dist/pkgs/data-model/schema/index.cjs +0 -1550
- package/dist/pkgs/data-model/schema/index.d.ts +0 -8
- package/dist/pkgs/data-model/schema/index.d.ts.map +0 -1
- package/dist/pkgs/data-model/schema/index.js +0 -1446
- package/dist/pkgs/data-model/schema/schemas.d.ts +0 -14
- package/dist/pkgs/data-model/schema/schemas.d.ts.map +0 -1
- package/dist/pkgs/data-model/schema/types.d.ts +0 -86
- package/dist/pkgs/data-model/schema/types.d.ts.map +0 -1
- package/dist/pkgs/db-adapters/adapter-factory.d.ts +0 -21
- package/dist/pkgs/db-adapters/adapter-factory.d.ts.map +0 -1
- package/dist/pkgs/db-adapters/adapters/drizzle-adapter/drizzle-adapter.d.ts +0 -122
- package/dist/pkgs/db-adapters/adapters/drizzle-adapter/drizzle-adapter.d.ts.map +0 -1
- package/dist/pkgs/db-adapters/adapters/drizzle-adapter/index.cjs +0 -1183
- package/dist/pkgs/db-adapters/adapters/drizzle-adapter/index.d.ts +0 -2
- package/dist/pkgs/db-adapters/adapters/drizzle-adapter/index.d.ts.map +0 -1
- package/dist/pkgs/db-adapters/adapters/drizzle-adapter/index.js +0 -1139
- package/dist/pkgs/db-adapters/adapters/index.d.ts +0 -10
- package/dist/pkgs/db-adapters/adapters/index.d.ts.map +0 -1
- package/dist/pkgs/db-adapters/adapters/kysely-adapter/dialect.d.ts +0 -70
- package/dist/pkgs/db-adapters/adapters/kysely-adapter/dialect.d.ts.map +0 -1
- package/dist/pkgs/db-adapters/adapters/kysely-adapter/index.cjs +0 -1296
- package/dist/pkgs/db-adapters/adapters/kysely-adapter/index.d.ts +0 -4
- package/dist/pkgs/db-adapters/adapters/kysely-adapter/index.d.ts.map +0 -1
- package/dist/pkgs/db-adapters/adapters/kysely-adapter/index.js +0 -1132
- package/dist/pkgs/db-adapters/adapters/kysely-adapter/kysely-adapter.d.ts +0 -99
- package/dist/pkgs/db-adapters/adapters/kysely-adapter/kysely-adapter.d.ts.map +0 -1
- package/dist/pkgs/db-adapters/adapters/kysely-adapter/tests/postgres.test.d.ts +0 -2
- package/dist/pkgs/db-adapters/adapters/kysely-adapter/tests/postgres.test.d.ts.map +0 -1
- package/dist/pkgs/db-adapters/adapters/kysely-adapter/tests/sqlite.test.d.ts +0 -2
- package/dist/pkgs/db-adapters/adapters/kysely-adapter/tests/sqlite.test.d.ts.map +0 -1
- package/dist/pkgs/db-adapters/adapters/kysely-adapter/tests/test-utils.d.ts +0 -49
- package/dist/pkgs/db-adapters/adapters/kysely-adapter/tests/test-utils.d.ts.map +0 -1
- package/dist/pkgs/db-adapters/adapters/kysely-adapter/types.d.ts +0 -278
- package/dist/pkgs/db-adapters/adapters/kysely-adapter/types.d.ts.map +0 -1
- package/dist/pkgs/db-adapters/adapters/memory-adapter/index.cjs +0 -1076
- package/dist/pkgs/db-adapters/adapters/memory-adapter/index.d.ts +0 -2
- package/dist/pkgs/db-adapters/adapters/memory-adapter/index.d.ts.map +0 -1
- package/dist/pkgs/db-adapters/adapters/memory-adapter/index.js +0 -916
- package/dist/pkgs/db-adapters/adapters/memory-adapter/memory-adapter.d.ts +0 -58
- package/dist/pkgs/db-adapters/adapters/memory-adapter/memory-adapter.d.ts.map +0 -1
- package/dist/pkgs/db-adapters/adapters/prisma-adapter/index.cjs +0 -1155
- package/dist/pkgs/db-adapters/adapters/prisma-adapter/index.d.ts +0 -2
- package/dist/pkgs/db-adapters/adapters/prisma-adapter/index.d.ts.map +0 -1
- package/dist/pkgs/db-adapters/adapters/prisma-adapter/index.js +0 -1111
- package/dist/pkgs/db-adapters/adapters/prisma-adapter/prisma-adapter.d.ts +0 -145
- package/dist/pkgs/db-adapters/adapters/prisma-adapter/prisma-adapter.d.ts.map +0 -1
- package/dist/pkgs/db-adapters/adapters/test.d.ts +0 -11
- package/dist/pkgs/db-adapters/adapters/test.d.ts.map +0 -1
- package/dist/pkgs/db-adapters/index.cjs +0 -2035
- package/dist/pkgs/db-adapters/index.d.ts +0 -16
- package/dist/pkgs/db-adapters/index.d.ts.map +0 -1
- package/dist/pkgs/db-adapters/index.js +0 -1972
- package/dist/pkgs/db-adapters/types.d.ts +0 -160
- package/dist/pkgs/db-adapters/types.d.ts.map +0 -1
- package/dist/pkgs/db-adapters/utils.d.ts +0 -36
- package/dist/pkgs/db-adapters/utils.d.ts.map +0 -1
- package/dist/pkgs/migrations/get-migration.d.ts +0 -4
- package/dist/pkgs/migrations/get-migration.d.ts.map +0 -1
- package/dist/pkgs/migrations/get-schema/get-schema.d.ts +0 -27
- package/dist/pkgs/migrations/get-schema/get-schema.d.ts.map +0 -1
- package/dist/pkgs/migrations/get-schema/index.d.ts +0 -21
- package/dist/pkgs/migrations/get-schema/index.d.ts.map +0 -1
- package/dist/pkgs/migrations/get-schema/process-fields.d.ts +0 -15
- package/dist/pkgs/migrations/get-schema/process-fields.d.ts.map +0 -1
- package/dist/pkgs/migrations/get-schema/process-tables.d.ts +0 -13
- package/dist/pkgs/migrations/get-schema/process-tables.d.ts.map +0 -1
- package/dist/pkgs/migrations/get-schema/types.d.ts +0 -17
- package/dist/pkgs/migrations/get-schema/types.d.ts.map +0 -1
- package/dist/pkgs/migrations/index.cjs +0 -1352
- package/dist/pkgs/migrations/index.d.ts +0 -18
- package/dist/pkgs/migrations/index.d.ts.map +0 -1
- package/dist/pkgs/migrations/index.js +0 -1171
- package/dist/pkgs/migrations/migration-builders.d.ts +0 -28
- package/dist/pkgs/migrations/migration-builders.d.ts.map +0 -1
- package/dist/pkgs/migrations/migration-execution.d.ts +0 -12
- package/dist/pkgs/migrations/migration-execution.d.ts.map +0 -1
- package/dist/pkgs/migrations/schema-comparison.d.ts +0 -35
- package/dist/pkgs/migrations/schema-comparison.d.ts.map +0 -1
- package/dist/pkgs/migrations/type-mapping.d.ts +0 -75
- package/dist/pkgs/migrations/type-mapping.d.ts.map +0 -1
- package/dist/pkgs/migrations/types.d.ts +0 -36
- package/dist/pkgs/migrations/types.d.ts.map +0 -1
- package/dist/pkgs/results/__tests__/error-class.test.d.ts +0 -2
- package/dist/pkgs/results/__tests__/error-class.test.d.ts.map +0 -1
- package/dist/pkgs/results/__tests__/error-codes.test.d.ts +0 -2
- package/dist/pkgs/results/__tests__/error-codes.test.d.ts.map +0 -1
- package/dist/pkgs/results/__tests__/neverthrow-integration.test.d.ts +0 -2
- package/dist/pkgs/results/__tests__/neverthrow-integration.test.d.ts.map +0 -1
- package/dist/pkgs/results/__tests__/recovery-utils.test.d.ts +0 -2
- package/dist/pkgs/results/__tests__/recovery-utils.test.d.ts.map +0 -1
- package/dist/pkgs/results/__tests__/result-helpers.test.d.ts +0 -2
- package/dist/pkgs/results/__tests__/result-helpers.test.d.ts.map +0 -1
- package/dist/pkgs/results/core/error-class.d.ts +0 -128
- package/dist/pkgs/results/core/error-class.d.ts.map +0 -1
- package/dist/pkgs/results/core/error-codes.d.ts +0 -178
- package/dist/pkgs/results/core/error-codes.d.ts.map +0 -1
- package/dist/pkgs/results/core/tracing.d.ts +0 -11
- package/dist/pkgs/results/core/tracing.d.ts.map +0 -1
- package/dist/pkgs/results/create-telemetry-options.d.ts +0 -31
- package/dist/pkgs/results/create-telemetry-options.d.ts.map +0 -1
- package/dist/pkgs/results/index.cjs +0 -462
- package/dist/pkgs/results/index.d.ts +0 -80
- package/dist/pkgs/results/index.d.ts.map +0 -1
- package/dist/pkgs/results/index.js +0 -377
- package/dist/pkgs/results/orpc-error-handler.d.ts +0 -65
- package/dist/pkgs/results/orpc-error-handler.d.ts.map +0 -1
- package/dist/pkgs/results/results/recovery-utils.d.ts +0 -115
- package/dist/pkgs/results/results/recovery-utils.d.ts.map +0 -1
- package/dist/pkgs/results/results/result-helpers.d.ts +0 -214
- package/dist/pkgs/results/results/result-helpers.d.ts.map +0 -1
- package/dist/pkgs/results/types.d.ts +0 -200
- package/dist/pkgs/results/types.d.ts.map +0 -1
- package/dist/pkgs/types/context.d.ts +0 -160
- package/dist/pkgs/types/context.d.ts.map +0 -1
- package/dist/pkgs/types/endpoints.d.ts +0 -30
- package/dist/pkgs/types/endpoints.d.ts.map +0 -1
- package/dist/pkgs/types/helper.d.ts +0 -55
- package/dist/pkgs/types/helper.d.ts.map +0 -1
- package/dist/pkgs/types/index.cjs +0 -18
- package/dist/pkgs/types/index.d.ts +0 -11
- package/dist/pkgs/types/index.d.ts.map +0 -1
- package/dist/pkgs/types/options.d.ts +0 -228
- package/dist/pkgs/types/options.d.ts.map +0 -1
- package/dist/pkgs/types/plugins.d.ts +0 -171
- package/dist/pkgs/types/plugins.d.ts.map +0 -1
- package/dist/pkgs/utils/env.d.ts.map +0 -1
- package/dist/pkgs/utils/index.d.ts +0 -4
- package/dist/pkgs/utils/index.d.ts.map +0 -1
- package/dist/pkgs/utils/logger.d.ts.map +0 -1
- package/dist/pkgs/utils/url.d.ts +0 -28
- package/dist/pkgs/utils/url.d.ts.map +0 -1
- package/dist/schema/audit-log/index.d.ts +0 -4
- package/dist/schema/audit-log/index.d.ts.map +0 -1
- package/dist/schema/audit-log/registry.d.ts +0 -96
- package/dist/schema/audit-log/registry.d.ts.map +0 -1
- package/dist/schema/audit-log/schema.d.ts +0 -45
- package/dist/schema/audit-log/schema.d.ts.map +0 -1
- package/dist/schema/audit-log/table.d.ts +0 -153
- package/dist/schema/audit-log/table.d.ts.map +0 -1
- package/dist/schema/audit-log/types.d.ts +0 -29
- package/dist/schema/audit-log/types.d.ts.map +0 -1
- package/dist/schema/consent/index.d.ts +0 -4
- package/dist/schema/consent/index.d.ts.map +0 -1
- package/dist/schema/consent/registry.d.ts +0 -150
- package/dist/schema/consent/registry.d.ts.map +0 -1
- package/dist/schema/consent/schema.d.ts +0 -53
- package/dist/schema/consent/schema.d.ts.map +0 -1
- package/dist/schema/consent/table.d.ts +0 -183
- package/dist/schema/consent/table.d.ts.map +0 -1
- package/dist/schema/consent/types.d.ts +0 -37
- package/dist/schema/consent/types.d.ts.map +0 -1
- package/dist/schema/consent-policy/index.d.ts +0 -4
- package/dist/schema/consent-policy/index.d.ts.map +0 -1
- package/dist/schema/consent-policy/registry.d.ts +0 -200
- package/dist/schema/consent-policy/registry.d.ts.map +0 -1
- package/dist/schema/consent-policy/schema.d.ts +0 -65
- package/dist/schema/consent-policy/schema.d.ts.map +0 -1
- package/dist/schema/consent-policy/table.d.ts +0 -142
- package/dist/schema/consent-policy/table.d.ts.map +0 -1
- package/dist/schema/consent-policy/types.d.ts +0 -29
- package/dist/schema/consent-policy/types.d.ts.map +0 -1
- package/dist/schema/consent-purpose/index.d.ts +0 -4
- package/dist/schema/consent-purpose/index.d.ts.map +0 -1
- package/dist/schema/consent-purpose/registry.d.ts +0 -138
- package/dist/schema/consent-purpose/registry.d.ts.map +0 -1
- package/dist/schema/consent-purpose/schema.d.ts +0 -57
- package/dist/schema/consent-purpose/schema.d.ts.map +0 -1
- package/dist/schema/consent-purpose/table.d.ts +0 -139
- package/dist/schema/consent-purpose/table.d.ts.map +0 -1
- package/dist/schema/consent-purpose/types.d.ts +0 -16
- package/dist/schema/consent-purpose/types.d.ts.map +0 -1
- package/dist/schema/consent-record/index.d.ts +0 -3
- package/dist/schema/consent-record/index.d.ts.map +0 -1
- package/dist/schema/consent-record/schema.d.ts +0 -41
- package/dist/schema/consent-record/schema.d.ts.map +0 -1
- package/dist/schema/consent-record/table.d.ts +0 -107
- package/dist/schema/consent-record/table.d.ts.map +0 -1
- package/dist/schema/consent-record/types.d.ts +0 -21
- package/dist/schema/consent-record/types.d.ts.map +0 -1
- package/dist/schema/create-registry.d.ts +0 -218
- package/dist/schema/create-registry.d.ts.map +0 -1
- package/dist/schema/definition.d.ts +0 -586
- package/dist/schema/definition.d.ts.map +0 -1
- package/dist/schema/domain/index.d.ts +0 -4
- package/dist/schema/domain/index.d.ts.map +0 -1
- package/dist/schema/domain/registry.d.ts +0 -222
- package/dist/schema/domain/registry.d.ts.map +0 -1
- package/dist/schema/domain/schema.d.ts +0 -42
- package/dist/schema/domain/schema.d.ts.map +0 -1
- package/dist/schema/domain/table.d.ts +0 -122
- package/dist/schema/domain/table.d.ts.map +0 -1
- package/dist/schema/domain/types.d.ts +0 -27
- package/dist/schema/domain/types.d.ts.map +0 -1
- package/dist/schema/index.cjs +0 -1565
- package/dist/schema/index.d.ts +0 -70
- package/dist/schema/index.d.ts.map +0 -1
- package/dist/schema/index.js +0 -1455
- package/dist/schema/schemas.d.ts +0 -98
- package/dist/schema/schemas.d.ts.map +0 -1
- package/dist/schema/subject/index.d.ts +0 -4
- package/dist/schema/subject/index.d.ts.map +0 -1
- package/dist/schema/subject/registry.d.ts +0 -110
- package/dist/schema/subject/registry.d.ts.map +0 -1
- package/dist/schema/subject/schema.d.ts +0 -40
- package/dist/schema/subject/schema.d.ts.map +0 -1
- package/dist/schema/subject/table.d.ts +0 -120
- package/dist/schema/subject/table.d.ts.map +0 -1
- package/dist/schema/subject/types.d.ts +0 -22
- package/dist/schema/subject/types.d.ts.map +0 -1
- package/dist/schema/types.d.ts +0 -108
- package/dist/schema/types.d.ts.map +0 -1
- package/dist/server.d.ts +0 -2
- package/dist/server.d.ts.map +0 -1
- package/dist/testing/contract-testing.d.ts +0 -38
- package/dist/testing/contract-testing.d.ts.map +0 -1
- package/dist/types/context.d.ts +0 -12
- package/dist/types/context.d.ts.map +0 -1
- package/dist/types/options.d.ts +0 -91
- package/dist/types/options.d.ts.map +0 -1
- package/dist/types/plugins.d.ts +0 -126
- package/dist/types/plugins.d.ts.map +0 -1
- package/dist/v2/contracts/consent/identify.contract.d.ts +0 -24
- package/dist/v2/contracts/consent/identify.contract.d.ts.map +0 -1
- package/dist/v2/contracts/consent/index.d.ts +0 -340
- package/dist/v2/contracts/consent/index.d.ts.map +0 -1
- package/dist/v2/contracts/consent/index.test.d.ts +0 -2
- package/dist/v2/contracts/consent/index.test.d.ts.map +0 -1
- package/dist/v2/contracts/consent/post.contract.d.ts +0 -117
- package/dist/v2/contracts/consent/post.contract.d.ts.map +0 -1
- package/dist/v2/contracts/consent/post.contract.test.d.ts +0 -2
- package/dist/v2/contracts/consent/post.contract.test.d.ts.map +0 -1
- package/dist/v2/contracts/consent/show-banner.contract.d.ts +0 -123
- package/dist/v2/contracts/consent/show-banner.contract.d.ts.map +0 -1
- package/dist/v2/contracts/consent/show-banner.contract.test.d.ts +0 -2
- package/dist/v2/contracts/consent/show-banner.contract.test.d.ts.map +0 -1
- package/dist/v2/contracts/consent/verify.contract.d.ts +0 -81
- package/dist/v2/contracts/consent/verify.contract.d.ts.map +0 -1
- package/dist/v2/contracts/consent/verify.contract.test.d.ts +0 -2
- package/dist/v2/contracts/consent/verify.contract.test.d.ts.map +0 -1
- package/dist/v2/contracts/index.cjs +0 -716
- package/dist/v2/contracts/index.d.ts +0 -723
- package/dist/v2/contracts/index.d.ts.map +0 -1
- package/dist/v2/contracts/index.js +0 -679
- package/dist/v2/contracts/meta/index.d.ts +0 -19
- package/dist/v2/contracts/meta/index.d.ts.map +0 -1
- package/dist/v2/contracts/meta/index.test.d.ts +0 -2
- package/dist/v2/contracts/meta/index.test.d.ts.map +0 -1
- package/dist/v2/contracts/meta/status.contract.d.ts +0 -18
- package/dist/v2/contracts/meta/status.contract.d.ts.map +0 -1
- package/dist/v2/contracts/meta/status.contract.test.d.ts +0 -2
- package/dist/v2/contracts/meta/status.contract.test.d.ts.map +0 -1
- package/dist/v2/contracts/shared/jurisdiction.schema.d.ts +0 -36
- package/dist/v2/contracts/shared/jurisdiction.schema.d.ts.map +0 -1
- package/dist/v2/contracts/test.utils.d.ts +0 -38
- package/dist/v2/contracts/test.utils.d.ts.map +0 -1
- package/dist/v2/core.cjs +0 -2350
- package/dist/v2/core.d.ts +0 -444
- package/dist/v2/core.d.ts.map +0 -1
- package/dist/v2/core.js +0 -2300
- package/dist/v2/db/adapters/drizzle.cjs +0 -36
- package/dist/v2/db/adapters/drizzle.d.ts.map +0 -1
- package/dist/v2/db/adapters/index.cjs +0 -18
- package/dist/v2/db/adapters/index.d.ts.map +0 -1
- package/dist/v2/db/adapters/index.js +0 -0
- package/dist/v2/db/adapters/kysely.cjs +0 -36
- package/dist/v2/db/adapters/kysely.d.ts.map +0 -1
- package/dist/v2/db/adapters/mongo.cjs +0 -36
- package/dist/v2/db/adapters/mongo.d.ts.map +0 -1
- package/dist/v2/db/adapters/prisma.cjs +0 -36
- package/dist/v2/db/adapters/prisma.d.ts.map +0 -1
- package/dist/v2/db/adapters/typeorm.cjs +0 -36
- package/dist/v2/db/adapters/typeorm.d.ts.map +0 -1
- package/dist/v2/db/migrator/index.cjs +0 -61
- package/dist/v2/db/migrator/index.d.ts.map +0 -1
- package/dist/v2/db/registry/audit-log.d.ts +0 -21
- package/dist/v2/db/registry/audit-log.d.ts.map +0 -1
- package/dist/v2/db/registry/audit-log.test.d.ts +0 -2
- package/dist/v2/db/registry/audit-log.test.d.ts.map +0 -1
- package/dist/v2/db/registry/consent-policy.d.ts +0 -29
- package/dist/v2/db/registry/consent-policy.d.ts.map +0 -1
- package/dist/v2/db/registry/consent-policy.test.d.ts +0 -2
- package/dist/v2/db/registry/consent-policy.test.d.ts.map +0 -1
- package/dist/v2/db/registry/consent-purpose.d.ts +0 -16
- package/dist/v2/db/registry/consent-purpose.d.ts.map +0 -1
- package/dist/v2/db/registry/consent-purpose.test.d.ts +0 -2
- package/dist/v2/db/registry/consent-purpose.test.d.ts.map +0 -1
- package/dist/v2/db/registry/consent.d.ts +0 -20
- package/dist/v2/db/registry/consent.d.ts.map +0 -1
- package/dist/v2/db/registry/consent.test.d.ts +0 -2
- package/dist/v2/db/registry/consent.test.d.ts.map +0 -1
- package/dist/v2/db/registry/domain.d.ts +0 -24
- package/dist/v2/db/registry/domain.d.ts.map +0 -1
- package/dist/v2/db/registry/domain.test.d.ts +0 -2
- package/dist/v2/db/registry/domain.test.d.ts.map +0 -1
- package/dist/v2/db/registry/index.d.ts +0 -103
- package/dist/v2/db/registry/index.d.ts.map +0 -1
- package/dist/v2/db/registry/subject.d.ts +0 -19
- package/dist/v2/db/registry/subject.d.ts.map +0 -1
- package/dist/v2/db/registry/subject.test.d.ts +0 -2
- package/dist/v2/db/registry/subject.test.d.ts.map +0 -1
- package/dist/v2/db/registry/types.d.ts +0 -10
- package/dist/v2/db/registry/types.d.ts.map +0 -1
- package/dist/v2/db/registry/utils/generate-id.d.ts +0 -25
- package/dist/v2/db/registry/utils/generate-id.d.ts.map +0 -1
- package/dist/v2/db/registry/utils/generate-id.test.d.ts +0 -2
- package/dist/v2/db/registry/utils/generate-id.test.d.ts.map +0 -1
- package/dist/v2/db/registry/utils.d.ts +0 -25
- package/dist/v2/db/registry/utils.d.ts.map +0 -1
- package/dist/v2/db/schema/1.0.0/audit-log.d.ts +0 -29
- package/dist/v2/db/schema/1.0.0/audit-log.d.ts.map +0 -1
- package/dist/v2/db/schema/1.0.0/consent-policy.d.ts +0 -45
- package/dist/v2/db/schema/1.0.0/consent-policy.d.ts.map +0 -1
- package/dist/v2/db/schema/1.0.0/consent-purpose.d.ts +0 -27
- package/dist/v2/db/schema/1.0.0/consent-purpose.d.ts.map +0 -1
- package/dist/v2/db/schema/1.0.0/consent-record.d.ts +0 -19
- package/dist/v2/db/schema/1.0.0/consent-record.d.ts.map +0 -1
- package/dist/v2/db/schema/1.0.0/consent.d.ts +0 -42
- package/dist/v2/db/schema/1.0.0/consent.d.ts.map +0 -1
- package/dist/v2/db/schema/1.0.0/domain.d.ts +0 -23
- package/dist/v2/db/schema/1.0.0/domain.d.ts.map +0 -1
- package/dist/v2/db/schema/1.0.0/index.d.ts +0 -1513
- package/dist/v2/db/schema/1.0.0/index.d.ts.map +0 -1
- package/dist/v2/db/schema/1.0.0/subject.d.ts +0 -23
- package/dist/v2/db/schema/1.0.0/subject.d.ts.map +0 -1
- package/dist/v2/db/schema/index.cjs +0 -326
- package/dist/v2/db/schema/index.d.ts +0 -1507
- package/dist/v2/db/schema/index.d.ts.map +0 -1
- package/dist/v2/db/schema/index.js +0 -241
- package/dist/v2/define-config.cjs +0 -36
- package/dist/v2/define-config.d.ts.map +0 -1
- package/dist/v2/handlers/consent/identify.handler.d.ts +0 -23
- package/dist/v2/handlers/consent/identify.handler.d.ts.map +0 -1
- package/dist/v2/handlers/consent/identify.handler.test.d.ts +0 -2
- package/dist/v2/handlers/consent/identify.handler.test.d.ts.map +0 -1
- package/dist/v2/handlers/consent/index.d.ts +0 -340
- package/dist/v2/handlers/consent/index.d.ts.map +0 -1
- package/dist/v2/handlers/consent/post.handler.d.ts +0 -139
- package/dist/v2/handlers/consent/post.handler.d.ts.map +0 -1
- package/dist/v2/handlers/consent/show-banner/geo.d.ts +0 -10
- package/dist/v2/handlers/consent/show-banner/geo.d.ts.map +0 -1
- package/dist/v2/handlers/consent/show-banner/geo.test.d.ts +0 -2
- package/dist/v2/handlers/consent/show-banner/geo.test.d.ts.map +0 -1
- package/dist/v2/handlers/consent/show-banner/handler.d.ts +0 -126
- package/dist/v2/handlers/consent/show-banner/handler.d.ts.map +0 -1
- package/dist/v2/handlers/consent/show-banner/handler.test.d.ts +0 -2
- package/dist/v2/handlers/consent/show-banner/handler.test.d.ts.map +0 -1
- package/dist/v2/handlers/consent/show-banner/translations.d.ts +0 -13
- package/dist/v2/handlers/consent/show-banner/translations.d.ts.map +0 -1
- package/dist/v2/handlers/consent/show-banner/translations.test.d.ts +0 -2
- package/dist/v2/handlers/consent/show-banner/translations.test.d.ts.map +0 -1
- package/dist/v2/handlers/consent/verify.handler.d.ts +0 -103
- package/dist/v2/handlers/consent/verify.handler.d.ts.map +0 -1
- package/dist/v2/handlers/meta/index.d.ts +0 -19
- package/dist/v2/handlers/meta/index.d.ts.map +0 -1
- package/dist/v2/handlers/meta/status.handler.d.ts +0 -17
- package/dist/v2/handlers/meta/status.handler.d.ts.map +0 -1
- package/dist/v2/init.d.ts +0 -3
- package/dist/v2/init.d.ts.map +0 -1
- package/dist/v2/init.test.d.ts +0 -2
- package/dist/v2/init.test.d.ts.map +0 -1
- package/dist/v2/middleware/cors/cors.d.ts +0 -37
- package/dist/v2/middleware/cors/cors.d.ts.map +0 -1
- package/dist/v2/middleware/cors/cors.test.d.ts +0 -2
- package/dist/v2/middleware/cors/cors.test.d.ts.map +0 -1
- package/dist/v2/middleware/cors/index.d.ts +0 -30
- package/dist/v2/middleware/cors/index.d.ts.map +0 -1
- package/dist/v2/middleware/cors/is-origin-trusted.d.ts +0 -49
- package/dist/v2/middleware/cors/is-origin-trusted.d.ts.map +0 -1
- package/dist/v2/middleware/cors/is-origin-trusted.test.d.ts +0 -2
- package/dist/v2/middleware/cors/is-origin-trusted.test.d.ts.map +0 -1
- package/dist/v2/middleware/cors/process-cors.d.ts +0 -31
- package/dist/v2/middleware/cors/process-cors.d.ts.map +0 -1
- package/dist/v2/middleware/openapi/config.d.ts +0 -28
- package/dist/v2/middleware/openapi/config.d.ts.map +0 -1
- package/dist/v2/middleware/openapi/handlers.d.ts +0 -29
- package/dist/v2/middleware/openapi/handlers.d.ts.map +0 -1
- package/dist/v2/middleware/openapi/index.d.ts +0 -11
- package/dist/v2/middleware/openapi/index.d.ts.map +0 -1
- package/dist/v2/middleware/process-ip/index.d.ts +0 -3
- package/dist/v2/middleware/process-ip/index.d.ts.map +0 -1
- package/dist/v2/router.cjs +0 -1442
- package/dist/v2/router.d.ts +0 -360
- package/dist/v2/router.d.ts.map +0 -1
- package/dist/v2/router.js +0 -1398
- package/dist/v2/types/api.d.ts +0 -27
- package/dist/v2/types/api.d.ts.map +0 -1
- package/dist/v2/types/index.cjs +0 -40
- package/dist/v2/types/index.d.ts +0 -104
- package/dist/v2/types/index.d.ts.map +0 -1
- package/dist/v2/types/index.js +0 -6
- package/dist/v2/utils/create-telemetry-options.d.ts +0 -28
- package/dist/v2/utils/create-telemetry-options.d.ts.map +0 -1
- package/dist/v2/utils/env.d.ts +0 -60
- package/dist/v2/utils/env.d.ts.map +0 -1
- package/dist/v2/utils/index.d.ts +0 -3
- package/dist/v2/utils/index.d.ts.map +0 -1
- package/dist/v2/utils/logger.d.ts +0 -16
- package/dist/v2/utils/logger.d.ts.map +0 -1
- package/src/__tests__/server.test.ts +0 -100
- package/src/contracts/consent/identify.contract.ts +0 -38
- package/src/contracts/consent/index.test.ts +0 -5
- package/src/contracts/consent/index.ts +0 -11
- package/src/contracts/consent/post.contract.test.ts +0 -521
- package/src/contracts/consent/post.contract.ts +0 -156
- package/src/contracts/consent/show-banner.contract.test.ts +0 -260
- package/src/contracts/consent/show-banner.contract.ts +0 -136
- package/src/contracts/consent/verify.contract.test.ts +0 -185
- package/src/contracts/consent/verify.contract.ts +0 -122
- package/src/contracts/index.ts +0 -20
- package/src/contracts/meta/index.test.ts +0 -5
- package/src/contracts/meta/index.ts +0 -5
- package/src/contracts/meta/status.contract.test.ts +0 -338
- package/src/contracts/meta/status.contract.ts +0 -37
- package/src/contracts/shared/jurisdiction.schema.ts +0 -30
- package/src/handlers/consent/identify.handler.test.ts +0 -473
- package/src/handlers/consent/identify.handler.ts +0 -176
- package/src/handlers/consent/post.handler.ts +0 -277
- package/src/handlers/consent/show-banner/geo.test.ts +0 -281
- package/src/handlers/consent/show-banner/geo.ts +0 -96
- package/src/handlers/consent/show-banner/handler.test.ts +0 -376
- package/src/handlers/consent/show-banner/handler.ts +0 -123
- package/src/handlers/consent/show-banner/translations.test.ts +0 -121
- package/src/handlers/consent/show-banner/translations.ts +0 -79
- package/src/handlers/consent/verify.handler.ts +0 -305
- package/src/handlers/meta/index.ts +0 -5
- package/src/handlers/meta/status.handler.ts +0 -47
- package/src/pkgs/api-router/hooks/__tests__/processor.test.ts +0 -290
- package/src/pkgs/api-router/hooks/processor.ts +0 -153
- package/src/pkgs/api-router/telemetry.ts +0 -83
- package/src/pkgs/api-router/types/router-props.ts +0 -36
- package/src/pkgs/api-router/utils/ip.ts +0 -92
- package/src/pkgs/data-model/fields/field-factory.ts +0 -208
- package/src/pkgs/data-model/fields/field-inference.ts +0 -93
- package/src/pkgs/data-model/fields/field-types.ts +0 -233
- package/src/pkgs/data-model/fields/id-generator.ts +0 -57
- package/src/pkgs/data-model/fields/index.ts +0 -37
- package/src/pkgs/data-model/fields/superjson-utils.ts +0 -17
- package/src/pkgs/data-model/fields/zod-fields.ts +0 -125
- package/src/pkgs/data-model/hooks/create-hooks.ts +0 -88
- package/src/pkgs/data-model/hooks/index.ts +0 -40
- package/src/pkgs/data-model/hooks/types.ts +0 -165
- package/src/pkgs/data-model/hooks/update-hooks.ts +0 -91
- package/src/pkgs/data-model/hooks/update-many-hooks.ts +0 -176
- package/src/pkgs/data-model/hooks/utils.ts +0 -151
- package/src/pkgs/data-model/hooks/with-hooks-factory.ts +0 -68
- package/src/pkgs/data-model/index.ts +0 -13
- package/src/pkgs/data-model/schema/index.ts +0 -19
- package/src/pkgs/data-model/schema/schemas.ts +0 -15
- package/src/pkgs/data-model/schema/types.ts +0 -105
- package/src/pkgs/db-adapters/README.md +0 -95
- package/src/pkgs/db-adapters/adapter-factory.ts +0 -68
- package/src/pkgs/db-adapters/adapters/drizzle-adapter/drizzle-adapter.ts +0 -709
- package/src/pkgs/db-adapters/adapters/drizzle-adapter/index.ts +0 -1
- package/src/pkgs/db-adapters/adapters/index.ts +0 -10
- package/src/pkgs/db-adapters/adapters/kysely-adapter/dialect.ts +0 -195
- package/src/pkgs/db-adapters/adapters/kysely-adapter/index.ts +0 -10
- package/src/pkgs/db-adapters/adapters/kysely-adapter/kysely-adapter.ts +0 -1182
- package/src/pkgs/db-adapters/adapters/kysely-adapter/tests/postgres.test.ts +0 -214
- package/src/pkgs/db-adapters/adapters/kysely-adapter/tests/sqlite.test.ts +0 -227
- package/src/pkgs/db-adapters/adapters/kysely-adapter/tests/test-utils.ts +0 -439
- package/src/pkgs/db-adapters/adapters/kysely-adapter/types.ts +0 -304
- package/src/pkgs/db-adapters/adapters/memory-adapter/index.ts +0 -1
- package/src/pkgs/db-adapters/adapters/memory-adapter/memory-adapter.ts +0 -665
- package/src/pkgs/db-adapters/adapters/prisma-adapter/index.ts +0 -1
- package/src/pkgs/db-adapters/adapters/prisma-adapter/prisma-adapter.ts +0 -586
- package/src/pkgs/db-adapters/adapters/test.ts +0 -77
- package/src/pkgs/db-adapters/index.ts +0 -28
- package/src/pkgs/db-adapters/types.ts +0 -211
- package/src/pkgs/db-adapters/utils.ts +0 -51
- package/src/pkgs/migrations/README.md +0 -73
- package/src/pkgs/migrations/get-migration.ts +0 -88
- package/src/pkgs/migrations/get-schema/get-schema.ts +0 -43
- package/src/pkgs/migrations/get-schema/index.ts +0 -20
- package/src/pkgs/migrations/get-schema/process-fields.ts +0 -65
- package/src/pkgs/migrations/get-schema/process-tables.ts +0 -66
- package/src/pkgs/migrations/get-schema/types.ts +0 -18
- package/src/pkgs/migrations/index.ts +0 -30
- package/src/pkgs/migrations/migration-builders.ts +0 -170
- package/src/pkgs/migrations/migration-execution.ts +0 -72
- package/src/pkgs/migrations/schema-comparison.ts +0 -203
- package/src/pkgs/migrations/type-mapping.ts +0 -244
- package/src/pkgs/migrations/types.ts +0 -48
- package/src/pkgs/results/README.md +0 -345
- package/src/pkgs/results/__tests__/error-class.test.ts +0 -183
- package/src/pkgs/results/__tests__/error-codes.test.ts +0 -81
- package/src/pkgs/results/__tests__/neverthrow-integration.test.ts +0 -92
- package/src/pkgs/results/__tests__/recovery-utils.test.ts +0 -140
- package/src/pkgs/results/__tests__/result-helpers.test.ts +0 -206
- package/src/pkgs/results/core/error-class.ts +0 -297
- package/src/pkgs/results/core/error-codes.ts +0 -206
- package/src/pkgs/results/core/tracing.ts +0 -65
- package/src/pkgs/results/create-telemetry-options.ts +0 -62
- package/src/pkgs/results/index.ts +0 -115
- package/src/pkgs/results/orpc-error-handler.ts +0 -137
- package/src/pkgs/results/results/recovery-utils.ts +0 -181
- package/src/pkgs/results/results/result-helpers.ts +0 -383
- package/src/pkgs/results/types.ts +0 -217
- package/src/pkgs/types/context.ts +0 -178
- package/src/pkgs/types/endpoints.ts +0 -35
- package/src/pkgs/types/helper.ts +0 -57
- package/src/pkgs/types/index.ts +0 -18
- package/src/pkgs/types/options.ts +0 -252
- package/src/pkgs/types/plugins.ts +0 -191
- package/src/pkgs/utils/index.ts +0 -3
- package/src/pkgs/utils/logger.ts +0 -35
- package/src/pkgs/utils/url.ts +0 -105
- package/src/schema/audit-log/index.ts +0 -3
- package/src/schema/audit-log/registry.ts +0 -117
- package/src/schema/audit-log/schema.ts +0 -46
- package/src/schema/audit-log/table.ts +0 -185
- package/src/schema/audit-log/types.ts +0 -29
- package/src/schema/consent/index.ts +0 -3
- package/src/schema/consent/registry.ts +0 -177
- package/src/schema/consent/schema.ts +0 -51
- package/src/schema/consent/table.ts +0 -221
- package/src/schema/consent/types.ts +0 -39
- package/src/schema/consent-policy/index.ts +0 -3
- package/src/schema/consent-policy/registry.ts +0 -352
- package/src/schema/consent-policy/schema.ts +0 -60
- package/src/schema/consent-policy/table.ts +0 -150
- package/src/schema/consent-policy/types.ts +0 -29
- package/src/schema/consent-purpose/index.ts +0 -3
- package/src/schema/consent-purpose/registry.ts +0 -168
- package/src/schema/consent-purpose/schema.ts +0 -58
- package/src/schema/consent-purpose/table.ts +0 -154
- package/src/schema/consent-purpose/types.ts +0 -16
- package/src/schema/consent-record/index.ts +0 -2
- package/src/schema/consent-record/schema.ts +0 -42
- package/src/schema/consent-record/table.ts +0 -124
- package/src/schema/consent-record/types.ts +0 -21
- package/src/schema/create-registry.ts +0 -21
- package/src/schema/definition.ts +0 -200
- package/src/schema/domain/index.ts +0 -3
- package/src/schema/domain/registry.ts +0 -296
- package/src/schema/domain/schema.ts +0 -43
- package/src/schema/domain/table.ts +0 -137
- package/src/schema/domain/types.ts +0 -27
- package/src/schema/index.ts +0 -74
- package/src/schema/schemas.ts +0 -27
- package/src/schema/subject/index.ts +0 -3
- package/src/schema/subject/registry.ts +0 -298
- package/src/schema/subject/schema.ts +0 -41
- package/src/schema/subject/table.ts +0 -138
- package/src/schema/subject/types.ts +0 -22
- package/src/schema/types.ts +0 -121
- package/src/server.ts +0 -126
- package/src/testing/contract-testing.ts +0 -400
- package/src/types/context.ts +0 -16
- package/src/types/options.ts +0 -103
- package/src/types/plugins.ts +0 -154
- package/src/v2/contracts/consent/identify.contract.ts +0 -38
- package/src/v2/contracts/consent/index.test.ts +0 -5
- package/src/v2/contracts/consent/index.ts +0 -11
- package/src/v2/contracts/consent/post.contract.test.ts +0 -521
- package/src/v2/contracts/consent/post.contract.ts +0 -156
- package/src/v2/contracts/consent/show-banner.contract.test.ts +0 -252
- package/src/v2/contracts/consent/show-banner.contract.ts +0 -136
- package/src/v2/contracts/consent/verify.contract.test.ts +0 -185
- package/src/v2/contracts/consent/verify.contract.ts +0 -122
- package/src/v2/contracts/index.ts +0 -20
- package/src/v2/contracts/meta/index.test.ts +0 -5
- package/src/v2/contracts/meta/index.ts +0 -5
- package/src/v2/contracts/meta/status.contract.test.ts +0 -226
- package/src/v2/contracts/meta/status.contract.ts +0 -34
- package/src/v2/contracts/shared/jurisdiction.schema.ts +0 -30
- package/src/v2/contracts/test.utils.ts +0 -400
- package/src/v2/core.ts +0 -379
- package/src/v2/db/migrator/index.ts +0 -80
- package/src/v2/db/registry/audit-log.test.ts +0 -77
- package/src/v2/db/registry/audit-log.ts +0 -46
- package/src/v2/db/registry/consent-policy.test.ts +0 -778
- package/src/v2/db/registry/consent-policy.ts +0 -74
- package/src/v2/db/registry/consent-purpose.test.ts +0 -485
- package/src/v2/db/registry/consent-purpose.ts +0 -41
- package/src/v2/db/registry/consent.test.ts +0 -843
- package/src/v2/db/registry/consent.ts +0 -42
- package/src/v2/db/registry/domain.test.ts +0 -463
- package/src/v2/db/registry/domain.ts +0 -51
- package/src/v2/db/registry/index.ts +0 -18
- package/src/v2/db/registry/subject.test.ts +0 -497
- package/src/v2/db/registry/subject.ts +0 -103
- package/src/v2/db/registry/types.ts +0 -10
- package/src/v2/db/registry/utils/generate-id.test.ts +0 -217
- package/src/v2/db/registry/utils/generate-id.ts +0 -134
- package/src/v2/db/registry/utils.ts +0 -134
- package/src/v2/db/schema/1.0.0/audit-log.ts +0 -32
- package/src/v2/db/schema/1.0.0/consent-policy.ts +0 -41
- package/src/v2/db/schema/1.0.0/consent-purpose.ts +0 -30
- package/src/v2/db/schema/1.0.0/consent-record.ts +0 -22
- package/src/v2/db/schema/1.0.0/consent.ts +0 -38
- package/src/v2/db/schema/1.0.0/domain.ts +0 -26
- package/src/v2/db/schema/1.0.0/index.ts +0 -56
- package/src/v2/db/schema/1.0.0/subject.ts +0 -26
- package/src/v2/db/schema/index.ts +0 -9
- package/src/v2/handlers/consent/identify.handler.test.ts +0 -453
- package/src/v2/handlers/consent/identify.handler.ts +0 -125
- package/src/v2/handlers/consent/index.ts +0 -11
- package/src/v2/handlers/consent/post.handler.ts +0 -258
- package/src/v2/handlers/consent/show-banner/geo.test.ts +0 -281
- package/src/v2/handlers/consent/show-banner/geo.ts +0 -96
- package/src/v2/handlers/consent/show-banner/handler.test.ts +0 -374
- package/src/v2/handlers/consent/show-banner/handler.ts +0 -123
- package/src/v2/handlers/consent/show-banner/translations.test.ts +0 -121
- package/src/v2/handlers/consent/show-banner/translations.ts +0 -79
- package/src/v2/handlers/consent/verify.handler.ts +0 -288
- package/src/v2/handlers/meta/index.ts +0 -5
- package/src/v2/handlers/meta/status.handler.ts +0 -43
- package/src/v2/init.test.ts +0 -120
- package/src/v2/init.ts +0 -126
- package/src/v2/middleware/cors/cors.test.ts +0 -114
- package/src/v2/middleware/cors/cors.ts +0 -195
- package/src/v2/middleware/cors/index.ts +0 -30
- package/src/v2/middleware/cors/is-origin-trusted.test.ts +0 -164
- package/src/v2/middleware/cors/is-origin-trusted.ts +0 -129
- package/src/v2/middleware/cors/process-cors.ts +0 -91
- package/src/v2/middleware/openapi/config.ts +0 -27
- package/src/v2/middleware/openapi/handlers.ts +0 -132
- package/src/v2/middleware/openapi/index.ts +0 -11
- package/src/v2/middleware/process-ip/index.ts +0 -39
- package/src/v2/router.ts +0 -8
- package/src/v2/types/api.ts +0 -32
- package/src/v2/types/index.ts +0 -121
- package/src/v2/utils/create-telemetry-options.ts +0 -115
- package/src/v2/utils/env.ts +0 -84
- package/src/v2/utils/index.ts +0 -2
- package/src/v2/utils/logger.ts +0 -35
- /package/dist/{v2/db → db}/adapters/drizzle.d.ts +0 -0
- /package/dist/{v2/db → db}/adapters/drizzle.js +0 -0
- /package/dist/{v2/db → db}/adapters/index.d.ts +0 -0
- /package/dist/{v2/db → db}/adapters/kysely.d.ts +0 -0
- /package/dist/{v2/db → db}/adapters/kysely.js +0 -0
- /package/dist/{v2/db → db}/adapters/mongo.d.ts +0 -0
- /package/dist/{v2/db → db}/adapters/mongo.js +0 -0
- /package/dist/{v2/db → db}/adapters/prisma.d.ts +0 -0
- /package/dist/{v2/db → db}/adapters/prisma.js +0 -0
- /package/dist/{v2/db → db}/adapters/typeorm.d.ts +0 -0
- /package/dist/{v2/db → db}/adapters/typeorm.js +0 -0
- /package/dist/{pkgs/types/index.js → db/adapters.js} +0 -0
- /package/dist/{v2/db → db}/migrator/index.d.ts +0 -0
- /package/dist/{v2/db/migrator/index.js → db/migrator.js} +0 -0
- /package/dist/{v2/define-config.d.ts → define-config.d.ts} +0 -0
- /package/dist/{v2/define-config.js → define-config.js} +0 -0
- /package/dist/{pkgs/utils → utils}/env.d.ts +0 -0
- /package/dist/{pkgs/utils → utils}/logger.d.ts +0 -0
- /package/src/{v2/db → db}/adapters/drizzle.ts +0 -0
- /package/src/{v2/db → db}/adapters/index.ts +0 -0
- /package/src/{v2/db → db}/adapters/kysely.ts +0 -0
- /package/src/{v2/db → db}/adapters/mongo.ts +0 -0
- /package/src/{v2/db → db}/adapters/prisma.ts +0 -0
- /package/src/{v2/db → db}/adapters/typeorm.ts +0 -0
- /package/src/{v2/define-config.ts → define-config.ts} +0 -0
- /package/src/{pkgs/utils → utils}/env.ts +0 -0
|
@@ -1,170 +0,0 @@
|
|
|
1
|
-
import type { ColumnDataType, Expression, Kysely } from 'kysely';
|
|
2
|
-
import type {
|
|
3
|
-
Database,
|
|
4
|
-
KyselyDatabaseType,
|
|
5
|
-
} from '~/pkgs/db-adapters/adapters/kysely-adapter/types';
|
|
6
|
-
import { getLogger } from '~/pkgs/utils/logger';
|
|
7
|
-
import type { C15TOptions } from '~/types';
|
|
8
|
-
import { getType } from './type-mapping';
|
|
9
|
-
import type { ColumnsToAdd, MigrationOperation, TableToCreate } from './types';
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* Builds migrations for adding columns to existing tables
|
|
13
|
-
*
|
|
14
|
-
* This function creates ALTER TABLE statements to add missing columns
|
|
15
|
-
* to existing tables in the database.
|
|
16
|
-
*
|
|
17
|
-
* @param db - Kysely database instance used to build SQL operations
|
|
18
|
-
* @param toBeAdded - Collection of tables and columns that need to be added
|
|
19
|
-
* @param dbType - Database type to determine appropriate column types
|
|
20
|
-
* @returns Array of migration operations ready to be executed
|
|
21
|
-
*/
|
|
22
|
-
export function buildColumnAddMigrations(
|
|
23
|
-
db: Kysely<Database>,
|
|
24
|
-
toBeAdded: ColumnsToAdd[],
|
|
25
|
-
dbType: KyselyDatabaseType
|
|
26
|
-
): MigrationOperation[] {
|
|
27
|
-
// Array to collect all migration operations
|
|
28
|
-
const migrations: MigrationOperation[] = [];
|
|
29
|
-
|
|
30
|
-
// Process each table that needs columns added
|
|
31
|
-
for (const table of toBeAdded) {
|
|
32
|
-
// For each field in the table that needs to be added
|
|
33
|
-
for (const [fieldName, field] of Object.entries(table.fields)) {
|
|
34
|
-
// Get the appropriate database-specific type for this field
|
|
35
|
-
const type = getType(field, dbType) as
|
|
36
|
-
| ColumnDataType
|
|
37
|
-
| Expression<C15TOptions['database']>;
|
|
38
|
-
|
|
39
|
-
// Build an ALTER TABLE statement using Kysely's fluent API
|
|
40
|
-
const exec = db.schema
|
|
41
|
-
.alterTable(table.table)
|
|
42
|
-
// Add the column with the appropriate name and type
|
|
43
|
-
.addColumn(fieldName, type, (col) => {
|
|
44
|
-
// Start with nullability constraint based on field requirements
|
|
45
|
-
let column = field.required !== false ? col.notNull() : col;
|
|
46
|
-
|
|
47
|
-
// Add foreign key reference if specified
|
|
48
|
-
if (field.references) {
|
|
49
|
-
column = column.references(
|
|
50
|
-
`${field.references.model}.${field.references.field}`
|
|
51
|
-
);
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
// Add unique constraint if specified
|
|
55
|
-
if (field.unique) {
|
|
56
|
-
column = column.unique();
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
return column;
|
|
60
|
-
});
|
|
61
|
-
|
|
62
|
-
// Add this migration operation to our collection
|
|
63
|
-
migrations.push(exec);
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
return migrations;
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
/**
|
|
71
|
-
* Builds migrations for creating new tables
|
|
72
|
-
*
|
|
73
|
-
* This function creates CREATE TABLE statements for tables
|
|
74
|
-
* that don't exist in the database but are defined in the schema.
|
|
75
|
-
*
|
|
76
|
-
* @param db - Kysely database instance used to build SQL operations
|
|
77
|
-
* @param toBeCreated - Collection of tables that need to be created
|
|
78
|
-
* @param dbType - Database type to determine appropriate column types
|
|
79
|
-
* @returns Array of migration operations ready to be executed
|
|
80
|
-
*/
|
|
81
|
-
export function buildTableCreateMigrations(
|
|
82
|
-
db: Kysely<Database>,
|
|
83
|
-
toBeCreated: TableToCreate[],
|
|
84
|
-
dbType: KyselyDatabaseType
|
|
85
|
-
): MigrationOperation[] {
|
|
86
|
-
const logger = getLogger();
|
|
87
|
-
const migrations: MigrationOperation[] = [];
|
|
88
|
-
|
|
89
|
-
// Process each table that needs to be created
|
|
90
|
-
for (const table of toBeCreated) {
|
|
91
|
-
// Log all field names to detect potential duplicate 'id' issues
|
|
92
|
-
const fieldNames = Object.keys(table.fields);
|
|
93
|
-
logger.info(
|
|
94
|
-
`Creating table ${table.table} with fields: ${fieldNames.join(', ')}`
|
|
95
|
-
);
|
|
96
|
-
|
|
97
|
-
// Check for potential ID field conflict - warning for explicit 'id' field
|
|
98
|
-
// This is important because we automatically add an 'id' primary key
|
|
99
|
-
if (fieldNames.includes('id')) {
|
|
100
|
-
logger.warn(
|
|
101
|
-
`⚠️ Table ${table.table} already has an explicit 'id' field, which may conflict with the auto-generated primary key`
|
|
102
|
-
);
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
// Check for another potential issue: field with fieldName 'id' but different key
|
|
106
|
-
// This could cause column duplication errors
|
|
107
|
-
for (const [fieldName, field] of Object.entries(table.fields)) {
|
|
108
|
-
if (field.fieldName === 'id' && fieldName !== 'id') {
|
|
109
|
-
logger.error(
|
|
110
|
-
`❌ ERROR: Table ${table.table} has field '${fieldName}' with fieldName 'id' - this will cause a duplicate column error`
|
|
111
|
-
);
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
// Start building the CREATE TABLE statement
|
|
116
|
-
// Always add an 'id' primary key column first
|
|
117
|
-
let dbT = db.schema.createTable(table.table).addColumn(
|
|
118
|
-
'id',
|
|
119
|
-
// Choose appropriate ID type based on database
|
|
120
|
-
// MySQL and MSSQL use varchar(36) for UUIDs, others use text
|
|
121
|
-
dbType === 'mysql' || dbType === 'mssql' ? 'varchar(36)' : 'text',
|
|
122
|
-
// Make it a primary key and non-nullable
|
|
123
|
-
(col) => col.primaryKey().notNull()
|
|
124
|
-
);
|
|
125
|
-
|
|
126
|
-
// Now add all the subject-defined fields to the table
|
|
127
|
-
for (const [fieldName, field] of Object.entries(table.fields)) {
|
|
128
|
-
// Get appropriate database-specific type for this field
|
|
129
|
-
const type = getType(field, dbType) as
|
|
130
|
-
| ColumnDataType
|
|
131
|
-
| Expression<C15TOptions['database']>;
|
|
132
|
-
|
|
133
|
-
// Log what we're doing for debugging purposes
|
|
134
|
-
logger.info(
|
|
135
|
-
`Adding column ${fieldName} (fieldName: ${field.fieldName || fieldName}) to table ${table.table}`
|
|
136
|
-
);
|
|
137
|
-
|
|
138
|
-
// Add this column to the CREATE TABLE statement
|
|
139
|
-
dbT = dbT.addColumn(fieldName, type, (col) => {
|
|
140
|
-
// Apply constraints to the column
|
|
141
|
-
|
|
142
|
-
// 1. Nullability constraint - make NOT NULL if field is required
|
|
143
|
-
let column = field.required !== false ? col.notNull() : col;
|
|
144
|
-
|
|
145
|
-
// 2. Foreign key constraint - add REFERENCES if field references another table
|
|
146
|
-
if (field.references) {
|
|
147
|
-
column = column.references(
|
|
148
|
-
`${field.references.model}.${field.references.field}`
|
|
149
|
-
);
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
// 3. Uniqueness constraint - add UNIQUE if the field must have unique values
|
|
153
|
-
if (field.unique) {
|
|
154
|
-
column = column.unique();
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
return column;
|
|
158
|
-
});
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
// Generate and log the raw SQL for debugging/preview
|
|
162
|
-
const sqlDebug = dbT.compile().sql;
|
|
163
|
-
logger.info(`SQL for table ${table.table}:\n${sqlDebug}`);
|
|
164
|
-
|
|
165
|
-
// Add this completed CREATE TABLE statement to our migrations collection
|
|
166
|
-
migrations.push(dbT);
|
|
167
|
-
}
|
|
168
|
-
|
|
169
|
-
return migrations;
|
|
170
|
-
}
|
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
import { getLogger } from '~/pkgs/utils/logger';
|
|
2
|
-
import type { MigrationOperation } from './types';
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* Creates functions to run or compile the generated migrations
|
|
6
|
-
*
|
|
7
|
-
* @param migrations - Migration operations to execute
|
|
8
|
-
* @returns Object with runMigrations and compileMigrations functions
|
|
9
|
-
*/
|
|
10
|
-
export function createMigrationExecutors(migrations: MigrationOperation[]) {
|
|
11
|
-
const logger = getLogger();
|
|
12
|
-
|
|
13
|
-
/**
|
|
14
|
-
* Executes all migration operations against the database
|
|
15
|
-
*
|
|
16
|
-
* This function runs each migration in sequence, executing the SQL operations
|
|
17
|
-
* directly against the connected database. If any migration fails, the
|
|
18
|
-
* process is halted with an error.
|
|
19
|
-
*
|
|
20
|
-
* @remarks
|
|
21
|
-
* Migrations are executed in the order they were added to the migrations array.
|
|
22
|
-
* Column additions are typically executed before table creations to ensure
|
|
23
|
-
* any references between them are properly established.
|
|
24
|
-
*
|
|
25
|
-
* Error handling includes:
|
|
26
|
-
* - Detailed logging of which migration failed
|
|
27
|
-
* - Capturing the exact SQL that caused the error
|
|
28
|
-
* - Rethrowing the error to allow callers to implement recovery strategies
|
|
29
|
-
*
|
|
30
|
-
* @throws Will throw the original database error with additional context
|
|
31
|
-
*
|
|
32
|
-
* @returns A promise that resolves when all migrations are complete
|
|
33
|
-
*
|
|
34
|
-
* @example
|
|
35
|
-
* ```typescript
|
|
36
|
-
* try {
|
|
37
|
-
* await runMigrations();
|
|
38
|
-
* console.log('All migrations completed successfully');
|
|
39
|
-
* } catch (error) {
|
|
40
|
-
* console.error('Migration failed:', error);
|
|
41
|
-
* }
|
|
42
|
-
* ```
|
|
43
|
-
*/
|
|
44
|
-
async function runMigrations() {
|
|
45
|
-
// Loop through each migration operation in sequence
|
|
46
|
-
for (const migration of migrations) {
|
|
47
|
-
try {
|
|
48
|
-
// Execute this migration against the database
|
|
49
|
-
await migration.execute();
|
|
50
|
-
} catch (error) {
|
|
51
|
-
// If a migration fails, log the specific SQL that failed
|
|
52
|
-
const sql = migration.compile().sql;
|
|
53
|
-
logger.error(`Migration failed! SQL:\n${sql}`);
|
|
54
|
-
|
|
55
|
-
// Rethrow the error to allow the caller to handle it
|
|
56
|
-
throw error;
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
/**
|
|
62
|
-
* Compiles all migrations to SQL without executing them
|
|
63
|
-
*
|
|
64
|
-
* @returns SQL string of all migrations
|
|
65
|
-
*/
|
|
66
|
-
async function compileMigrations() {
|
|
67
|
-
const compiled = migrations.map((m) => m.compile().sql);
|
|
68
|
-
return `${compiled.join(';\n\n')};`;
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
return { runMigrations, compileMigrations };
|
|
72
|
-
}
|
|
@@ -1,203 +0,0 @@
|
|
|
1
|
-
import type { LoggerOptions } from '@c15t/logger';
|
|
2
|
-
import type { TableMetadata } from 'kysely';
|
|
3
|
-
import type { Field } from '~/pkgs/data-model';
|
|
4
|
-
import type { KyselyDatabaseType } from '~/pkgs/db-adapters/adapters/kysely-adapter/types';
|
|
5
|
-
import { getLogger } from '~/pkgs/utils/logger';
|
|
6
|
-
import type { C15TOptions } from '~/types';
|
|
7
|
-
|
|
8
|
-
import { getSchema } from './get-schema';
|
|
9
|
-
import { matchType } from './type-mapping';
|
|
10
|
-
import type {
|
|
11
|
-
ColumnsToAdd,
|
|
12
|
-
TableSchemaDefinition,
|
|
13
|
-
TableToCreate,
|
|
14
|
-
} from './types';
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* Analyzes schema differences between the expected schema and actual database
|
|
18
|
-
*
|
|
19
|
-
* This function compares the schema defined in the application with the
|
|
20
|
-
* actual database structure to determine what changes need to be made.
|
|
21
|
-
*
|
|
22
|
-
* @param config - c15t configuration containing the schema definition
|
|
23
|
-
* @param tableMetadata - Database table metadata from introspection, containing
|
|
24
|
-
* information about existing tables and columns
|
|
25
|
-
* @param dbType - The database type (postgres, mysql, sqlite, mssql) which affects
|
|
26
|
-
* how types are compared and mapped
|
|
27
|
-
*
|
|
28
|
-
* @returns An object containing tables to be created and columns to be added
|
|
29
|
-
*
|
|
30
|
-
* @example
|
|
31
|
-
* ```typescript
|
|
32
|
-
* const changes = analyzeSchemaChanges(
|
|
33
|
-
* appConfig,
|
|
34
|
-
* databaseMetadata,
|
|
35
|
-
* 'postgres'
|
|
36
|
-
* );
|
|
37
|
-
*
|
|
38
|
-
* console.log(`Need to create ${changes.toBeCreated.length} tables`);
|
|
39
|
-
* console.log(`Need to add columns to ${changes.toBeAdded.length} tables`);
|
|
40
|
-
* ```
|
|
41
|
-
*/
|
|
42
|
-
export function analyzeSchemaChanges(
|
|
43
|
-
config: C15TOptions,
|
|
44
|
-
tableMetadata: TableMetadata[],
|
|
45
|
-
dbType: KyselyDatabaseType
|
|
46
|
-
): { toBeCreated: TableToCreate[]; toBeAdded: ColumnsToAdd[] } {
|
|
47
|
-
const betterAuthSchema = getSchema(config);
|
|
48
|
-
const logger = getLogger(config.logger as LoggerOptions);
|
|
49
|
-
const toBeCreated: TableToCreate[] = [];
|
|
50
|
-
const toBeAdded: ColumnsToAdd[] = [];
|
|
51
|
-
|
|
52
|
-
for (const [key, value] of Object.entries(betterAuthSchema)) {
|
|
53
|
-
const table = tableMetadata.find((t: { name: string }) => t.name === key);
|
|
54
|
-
if (!table) {
|
|
55
|
-
handleNewTable(key, value as TableSchemaDefinition, toBeCreated);
|
|
56
|
-
continue;
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
handleExistingTable(
|
|
60
|
-
key,
|
|
61
|
-
value as TableSchemaDefinition,
|
|
62
|
-
table,
|
|
63
|
-
toBeAdded,
|
|
64
|
-
dbType,
|
|
65
|
-
logger
|
|
66
|
-
);
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
return { toBeCreated, toBeAdded };
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
/**
|
|
73
|
-
* Handles logic for a table that needs to be created
|
|
74
|
-
*
|
|
75
|
-
* This function adds a new table to the list of tables to be created,
|
|
76
|
-
* handling cases where the table might already be in the list, or
|
|
77
|
-
* where it needs to be inserted at a specific position based on order.
|
|
78
|
-
*
|
|
79
|
-
* @param tableName - The name of the table to be created
|
|
80
|
-
* @param value - Table definition containing fields and order
|
|
81
|
-
* @param toBeCreated - Array of tables to be created, modified in-place
|
|
82
|
-
*
|
|
83
|
-
* @remarks
|
|
84
|
-
* The function uses the table's order property to maintain dependencies
|
|
85
|
-
* between tables. Tables with lower order values are created first.
|
|
86
|
-
*
|
|
87
|
-
* If a table with the same name already exists in the list, its fields
|
|
88
|
-
* will be merged with the new fields rather than replacing the entry.
|
|
89
|
-
*/
|
|
90
|
-
function handleNewTable(
|
|
91
|
-
tableName: string,
|
|
92
|
-
value: TableSchemaDefinition,
|
|
93
|
-
toBeCreated: TableToCreate[]
|
|
94
|
-
): void {
|
|
95
|
-
const tIndex = toBeCreated.findIndex((t) => t.table === tableName);
|
|
96
|
-
const tableData = {
|
|
97
|
-
table: tableName,
|
|
98
|
-
fields: value.fields,
|
|
99
|
-
order: value.order || Number.POSITIVE_INFINITY,
|
|
100
|
-
};
|
|
101
|
-
|
|
102
|
-
const insertIndex = toBeCreated.findIndex(
|
|
103
|
-
(t) => (t.order || Number.POSITIVE_INFINITY) > tableData.order
|
|
104
|
-
);
|
|
105
|
-
|
|
106
|
-
if (insertIndex === -1) {
|
|
107
|
-
if (tIndex === -1) {
|
|
108
|
-
toBeCreated.push(tableData);
|
|
109
|
-
} else {
|
|
110
|
-
const existingTable = toBeCreated[tIndex];
|
|
111
|
-
if (existingTable) {
|
|
112
|
-
existingTable.fields = {
|
|
113
|
-
...existingTable.fields,
|
|
114
|
-
...value.fields,
|
|
115
|
-
};
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
} else {
|
|
119
|
-
toBeCreated.splice(insertIndex, 0, tableData);
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
/**
|
|
124
|
-
* Handles logic for an existing table that might need columns added
|
|
125
|
-
*
|
|
126
|
-
* This function compares the expected table fields with the actual
|
|
127
|
-
* table columns to determine which columns need to be added.
|
|
128
|
-
* It also logs warnings for type mismatches.
|
|
129
|
-
*
|
|
130
|
-
* @param tableName - The name of the table being checked
|
|
131
|
-
* @param value - Table definition containing expected fields and order
|
|
132
|
-
* @param table - Actual table metadata from database introspection
|
|
133
|
-
* @param toBeAdded - Array of table columns to be added, modified in-place
|
|
134
|
-
* @param dbType - Database type for type matching
|
|
135
|
-
* @param logger - Logger instance for warnings and errors
|
|
136
|
-
*
|
|
137
|
-
* @remarks
|
|
138
|
-
* Fields are compared by name and type. If a field exists in the expected schema
|
|
139
|
-
* but not in the actual table, it will be added to the list of columns to add.
|
|
140
|
-
*
|
|
141
|
-
* If a field exists in both but has a different type, a warning is logged.
|
|
142
|
-
* Type matching takes into account differences in type names between database systems.
|
|
143
|
-
*
|
|
144
|
-
* @example
|
|
145
|
-
* ```typescript
|
|
146
|
-
* // This might produce logs like:
|
|
147
|
-
* // "Field subjectId in table subjects has a different type in the database. Expected string but got varchar."
|
|
148
|
-
* handleExistingTable(
|
|
149
|
-
* 'subjects',
|
|
150
|
-
* { fields: { subjectId: { type: 'string', required: true } }, order: 1 },
|
|
151
|
-
* dbTable,
|
|
152
|
-
* columnsToAdd,
|
|
153
|
-
* 'postgres',
|
|
154
|
-
* logger
|
|
155
|
-
* );
|
|
156
|
-
* ```
|
|
157
|
-
*/
|
|
158
|
-
function handleExistingTable(
|
|
159
|
-
tableName: string,
|
|
160
|
-
value: TableSchemaDefinition,
|
|
161
|
-
table: TableMetadata,
|
|
162
|
-
toBeAdded: ColumnsToAdd[],
|
|
163
|
-
dbType: KyselyDatabaseType,
|
|
164
|
-
logger: ReturnType<typeof getLogger>
|
|
165
|
-
): void {
|
|
166
|
-
// Collection of fields that need to be added to the existing table
|
|
167
|
-
const toBeAddedFields: Record<string, Field> = {};
|
|
168
|
-
|
|
169
|
-
// Iterate through each field in the expected schema for this table
|
|
170
|
-
for (const [fieldName, field] of Object.entries(value.fields)) {
|
|
171
|
-
// Check if the field exists in the actual database table
|
|
172
|
-
const column = table.columns.find((c) => c.name === fieldName);
|
|
173
|
-
const typedField = field as Field;
|
|
174
|
-
|
|
175
|
-
// If the field doesn't exist in the database, mark it to be added
|
|
176
|
-
if (!column) {
|
|
177
|
-
toBeAddedFields[fieldName] = typedField;
|
|
178
|
-
continue; // Skip the rest of this iteration
|
|
179
|
-
}
|
|
180
|
-
|
|
181
|
-
// Field exists, so check if its type matches the expected type
|
|
182
|
-
// If types match, no action needed so continue to next field
|
|
183
|
-
if (matchType(column.dataType, typedField.type, dbType)) {
|
|
184
|
-
continue;
|
|
185
|
-
}
|
|
186
|
-
|
|
187
|
-
// If we reach here, the field exists but has a different type
|
|
188
|
-
// We don't alter column types to avoid data loss, just log a warning
|
|
189
|
-
logger.warn(
|
|
190
|
-
`Field ${fieldName} in table ${tableName} has a different type in the database. Expected ${typedField.type} but got ${column.dataType}.`
|
|
191
|
-
);
|
|
192
|
-
}
|
|
193
|
-
|
|
194
|
-
// After checking all fields, if we found fields that need to be added,
|
|
195
|
-
// add an entry to the toBeAdded array with all fields for this table
|
|
196
|
-
if (Object.keys(toBeAddedFields).length > 0) {
|
|
197
|
-
toBeAdded.push({
|
|
198
|
-
table: tableName,
|
|
199
|
-
fields: toBeAddedFields,
|
|
200
|
-
order: value.order || Number.POSITIVE_INFINITY, // Use specified order or lowest priority
|
|
201
|
-
});
|
|
202
|
-
}
|
|
203
|
-
}
|
|
@@ -1,244 +0,0 @@
|
|
|
1
|
-
import type { Field, FieldType } from '~/pkgs/data-model';
|
|
2
|
-
import type { KyselyDatabaseType } from '~/pkgs/db-adapters/adapters/kysely-adapter/types';
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* Type mappings for PostgreSQL
|
|
6
|
-
* Maps c15t field types to PostgreSQL-specific column types
|
|
7
|
-
*/
|
|
8
|
-
const postgresMap = {
|
|
9
|
-
string: ['character varying', 'text'],
|
|
10
|
-
number: [
|
|
11
|
-
'int4',
|
|
12
|
-
'integer',
|
|
13
|
-
'bigint',
|
|
14
|
-
'smallint',
|
|
15
|
-
'numeric',
|
|
16
|
-
'real',
|
|
17
|
-
'double precision',
|
|
18
|
-
],
|
|
19
|
-
boolean: ['bool', 'boolean'],
|
|
20
|
-
date: ['timestamp', 'date'],
|
|
21
|
-
json: ['json', 'jsonb'],
|
|
22
|
-
timezone: ['text', 'character varying'], // Timezone stored as text in PostgreSQL
|
|
23
|
-
};
|
|
24
|
-
|
|
25
|
-
/**
|
|
26
|
-
* Type mappings for MySQL
|
|
27
|
-
* Maps c15t field types to MySQL-specific column types
|
|
28
|
-
*/
|
|
29
|
-
const mysqlMap = {
|
|
30
|
-
string: ['varchar(255)', 'varchar(36)', 'text'], // Common MySQL string variants
|
|
31
|
-
number: [
|
|
32
|
-
'integer',
|
|
33
|
-
'int',
|
|
34
|
-
'bigint',
|
|
35
|
-
'smallint',
|
|
36
|
-
'decimal',
|
|
37
|
-
'float',
|
|
38
|
-
'double',
|
|
39
|
-
],
|
|
40
|
-
boolean: ['boolean', 'tinyint'],
|
|
41
|
-
date: ['timestamp', 'datetime', 'date'],
|
|
42
|
-
json: ['json'],
|
|
43
|
-
timezone: ['varchar(50)'], // Fixed length for timezone strings
|
|
44
|
-
};
|
|
45
|
-
|
|
46
|
-
/**
|
|
47
|
-
* Type mappings for SQLite
|
|
48
|
-
* Maps c15t field types to SQLite-specific column types
|
|
49
|
-
*/
|
|
50
|
-
const sqliteMap = {
|
|
51
|
-
string: ['TEXT'],
|
|
52
|
-
number: ['INTEGER', 'REAL'],
|
|
53
|
-
boolean: ['INTEGER', 'BOOLEAN'], // 0 or 1
|
|
54
|
-
date: ['DATE', 'INTEGER'],
|
|
55
|
-
json: ['TEXT'], // SQLite doesn't have native JSON, stored as TEXT
|
|
56
|
-
timezone: ['TEXT'], // Timezone stored as text in SQLite
|
|
57
|
-
};
|
|
58
|
-
/**
|
|
59
|
-
* Type mappings for Microsoft SQL Server
|
|
60
|
-
* Maps c15t field types to MSSQL-specific column types
|
|
61
|
-
*
|
|
62
|
-
* @remarks
|
|
63
|
-
* For double-precision floating point values, MSSQL uses FLOAT(53) which is
|
|
64
|
-
* equivalent to DOUBLE PRECISION in other databases. We map both 'double' and
|
|
65
|
-
* 'float' to the appropriate MSSQL types.
|
|
66
|
-
*/
|
|
67
|
-
const mssqlMap = {
|
|
68
|
-
string: ['text', 'varchar'],
|
|
69
|
-
number: ['int', 'bigint', 'smallint', 'decimal', 'float(53)', 'float(24)'],
|
|
70
|
-
boolean: ['bit', 'smallint'],
|
|
71
|
-
date: ['datetime', 'date'],
|
|
72
|
-
json: ['nvarchar(max)'], // MSSQL uses nvarchar for JSON storage
|
|
73
|
-
timezone: ['varchar', 'text'], // Timezone stored as text in MSSQL
|
|
74
|
-
};
|
|
75
|
-
|
|
76
|
-
/**
|
|
77
|
-
* All database type mappings
|
|
78
|
-
* Provides a unified interface to access type mappings for all supported databases
|
|
79
|
-
*/
|
|
80
|
-
const map = {
|
|
81
|
-
postgres: postgresMap,
|
|
82
|
-
mysql: mysqlMap,
|
|
83
|
-
sqlite: sqliteMap,
|
|
84
|
-
mssql: mssqlMap,
|
|
85
|
-
} as const;
|
|
86
|
-
|
|
87
|
-
/**
|
|
88
|
-
* Determines MySQL string type based on field attributes
|
|
89
|
-
*
|
|
90
|
-
* @param field - Field attributes including unique and references properties
|
|
91
|
-
* @returns The appropriate MySQL type for the string field
|
|
92
|
-
*
|
|
93
|
-
* @example
|
|
94
|
-
* ```typescript
|
|
95
|
-
* // Returns 'varchar(255)' for unique fields
|
|
96
|
-
* getMySqlStringType({ type: 'string', unique: true });
|
|
97
|
-
*
|
|
98
|
-
* // Returns 'varchar(36)' for reference fields
|
|
99
|
-
* getMySqlStringType({ type: 'string', references: 'subjects' });
|
|
100
|
-
*
|
|
101
|
-
* // Returns 'text' for regular string fields
|
|
102
|
-
* getMySqlStringType({ type: 'string' });
|
|
103
|
-
* ```
|
|
104
|
-
*/
|
|
105
|
-
export function getMySqlStringType(field: Field): string {
|
|
106
|
-
if (field.unique) {
|
|
107
|
-
return 'varchar(255)';
|
|
108
|
-
}
|
|
109
|
-
if (field.references) {
|
|
110
|
-
return 'varchar(36)';
|
|
111
|
-
}
|
|
112
|
-
return 'text';
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
/**
|
|
116
|
-
* Checks if a database column type matches the expected field type
|
|
117
|
-
*
|
|
118
|
-
* @param columnDataType - The actual column type in the database
|
|
119
|
-
* @param fieldType - The expected field type from c15t
|
|
120
|
-
* @param dbType - The database type (postgres, mysql, etc.)
|
|
121
|
-
* @returns True if types match, false otherwise
|
|
122
|
-
*
|
|
123
|
-
* @remarks
|
|
124
|
-
* This function handles type compatibility across different databases,
|
|
125
|
-
* accounting for the fact that the same logical type may have different
|
|
126
|
-
* names in different database systems.
|
|
127
|
-
*
|
|
128
|
-
* Array types (string[] and number[]) are treated specially and matched
|
|
129
|
-
* against JSON-compatible column types.
|
|
130
|
-
*
|
|
131
|
-
* @example
|
|
132
|
-
* ```typescript
|
|
133
|
-
* // Returns true because 'text' is compatible with 'string' in PostgreSQL
|
|
134
|
-
* matchType('text', 'string', 'postgres');
|
|
135
|
-
*
|
|
136
|
-
* // Returns true because 'jsonb' is compatible with array types
|
|
137
|
-
* matchType('jsonb', 'string[]', 'postgres');
|
|
138
|
-
* ```
|
|
139
|
-
*/
|
|
140
|
-
export function matchType(
|
|
141
|
-
columnDataType: string,
|
|
142
|
-
fieldType: FieldType,
|
|
143
|
-
dbType: KyselyDatabaseType
|
|
144
|
-
): boolean {
|
|
145
|
-
if (fieldType === 'string[]' || fieldType === 'number[]') {
|
|
146
|
-
return columnDataType.toLowerCase().includes('json');
|
|
147
|
-
}
|
|
148
|
-
const types = map[dbType];
|
|
149
|
-
const type = Array.isArray(fieldType)
|
|
150
|
-
? types.string.map((t) => t.toLowerCase())
|
|
151
|
-
: types[fieldType].map((t) => t.toLowerCase());
|
|
152
|
-
const matches = type.includes(columnDataType.toLowerCase());
|
|
153
|
-
return matches;
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
/**
|
|
157
|
-
* Gets the appropriate database type for a field
|
|
158
|
-
*
|
|
159
|
-
* @param field - Field attributes including type and other properties
|
|
160
|
-
* @param dbType - Database type to get the appropriate type for
|
|
161
|
-
* @returns The appropriate database-specific type
|
|
162
|
-
*
|
|
163
|
-
* @remarks
|
|
164
|
-
* This function determines the most appropriate database type for a given field,
|
|
165
|
-
* taking into account:
|
|
166
|
-
* - The field's base type (string, number, boolean, etc.)
|
|
167
|
-
* - Special attributes (unique, references, bigint)
|
|
168
|
-
* - Database-specific requirements and best practices
|
|
169
|
-
*
|
|
170
|
-
* @example
|
|
171
|
-
* ```typescript
|
|
172
|
-
* // Returns 'text' for a regular string field in SQLite
|
|
173
|
-
* getType({ type: 'string' }, 'sqlite');
|
|
174
|
-
*
|
|
175
|
-
* // Returns 'jsonb' for a JSON field in PostgreSQL
|
|
176
|
-
* getType({ type: 'json' }, 'postgres');
|
|
177
|
-
*
|
|
178
|
-
* // Returns 'bigint' for a number field with bigint flag
|
|
179
|
-
* getType({ type: 'number', bigint: true }, 'mysql');
|
|
180
|
-
* ```
|
|
181
|
-
*/
|
|
182
|
-
export function getType(field: Field, dbType: KyselyDatabaseType = 'sqlite') {
|
|
183
|
-
const type = field.type;
|
|
184
|
-
const typeMap = {
|
|
185
|
-
string: {
|
|
186
|
-
sqlite: 'text',
|
|
187
|
-
postgres: 'text',
|
|
188
|
-
mysql: getMySqlStringType(field),
|
|
189
|
-
mssql: getMySqlStringType(field),
|
|
190
|
-
},
|
|
191
|
-
boolean: {
|
|
192
|
-
sqlite: 'integer',
|
|
193
|
-
postgres: 'boolean',
|
|
194
|
-
mysql: 'boolean',
|
|
195
|
-
mssql: 'smallint',
|
|
196
|
-
},
|
|
197
|
-
number: {
|
|
198
|
-
sqlite: field.bigint ? 'bigint' : 'integer',
|
|
199
|
-
postgres: field.bigint ? 'bigint' : 'integer',
|
|
200
|
-
mysql: field.bigint ? 'bigint' : 'integer',
|
|
201
|
-
mssql: field.bigint ? 'bigint' : 'integer',
|
|
202
|
-
},
|
|
203
|
-
date: {
|
|
204
|
-
sqlite: 'date',
|
|
205
|
-
postgres: 'timestamp',
|
|
206
|
-
mysql: 'datetime',
|
|
207
|
-
mssql: 'datetime',
|
|
208
|
-
},
|
|
209
|
-
timezone: {
|
|
210
|
-
sqlite: 'text',
|
|
211
|
-
postgres: 'text',
|
|
212
|
-
mysql: 'varchar(50)',
|
|
213
|
-
mssql: 'nvarchar(50)',
|
|
214
|
-
},
|
|
215
|
-
json: {
|
|
216
|
-
sqlite: 'text', // SQLite doesn't have native JSON
|
|
217
|
-
postgres: 'jsonb', // PostgreSQL prefers jsonb for better performance
|
|
218
|
-
mysql: 'json',
|
|
219
|
-
mssql: 'nvarchar(max)', // SQL Server stores JSON as nvarchar
|
|
220
|
-
},
|
|
221
|
-
} as const;
|
|
222
|
-
|
|
223
|
-
if (dbType === 'sqlite' && (type === 'string[]' || type === 'number[]')) {
|
|
224
|
-
return 'text';
|
|
225
|
-
}
|
|
226
|
-
if (type === 'string[]' || type === 'number[]') {
|
|
227
|
-
switch (dbType) {
|
|
228
|
-
case 'postgres':
|
|
229
|
-
return 'jsonb';
|
|
230
|
-
case 'mysql':
|
|
231
|
-
case 'mssql':
|
|
232
|
-
return 'json';
|
|
233
|
-
default:
|
|
234
|
-
return 'text';
|
|
235
|
-
}
|
|
236
|
-
}
|
|
237
|
-
|
|
238
|
-
// Handle json type
|
|
239
|
-
if (type === 'json') {
|
|
240
|
-
return typeMap.json[dbType];
|
|
241
|
-
}
|
|
242
|
-
|
|
243
|
-
return typeMap[type][dbType];
|
|
244
|
-
}
|