@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,172 @@
|
|
|
1
|
+
import type { C15TMiddleware } from '../api/call';
|
|
2
|
+
/**
|
|
3
|
+
* c15t Consent Management System Configuration Types
|
|
4
|
+
*
|
|
5
|
+
* This module defines the configuration options for the c15t consent management system.
|
|
6
|
+
* It includes types for setting up storage, API endpoints, cookies, rate limiting,
|
|
7
|
+
* analytics, geo-targeting, plugins, logging, and other advanced features.
|
|
8
|
+
*/
|
|
9
|
+
import type { Logger } from '../utils/logger';
|
|
10
|
+
import type { C15TContext, C15TPlugin } from './index';
|
|
11
|
+
import type { DatabaseConfiguration } from '../db/adapters/kysely-adapter/types';
|
|
12
|
+
import type { EntityName } from '../db/core/types';
|
|
13
|
+
import type { DatabaseHook } from '../db/hooks/types';
|
|
14
|
+
import type { TablesConfig } from '../db/schema/types';
|
|
15
|
+
/**
|
|
16
|
+
* Main configuration options for the c15t consent management system
|
|
17
|
+
*
|
|
18
|
+
* This interface provides a comprehensive set of options for configuring
|
|
19
|
+
* all aspects of the consent management system, including core functionality,
|
|
20
|
+
* database settings, UI components, and plugin extensions.
|
|
21
|
+
*
|
|
22
|
+
* @typeParam P - Array of plugin types to be used with this configuration
|
|
23
|
+
*
|
|
24
|
+
* @example
|
|
25
|
+
* ```ts
|
|
26
|
+
* // Basic configuration
|
|
27
|
+
* const config: C15TOptions = {
|
|
28
|
+
* appName: 'My Application',
|
|
29
|
+
* baseURL: 'https://example.com',
|
|
30
|
+
* secret: 'strong-secret-key',
|
|
31
|
+
* plugins: [geoPlugin, analyticsPlugin]
|
|
32
|
+
* };
|
|
33
|
+
* ```
|
|
34
|
+
*/
|
|
35
|
+
export interface C15TOptions<P extends C15TPlugin[] = C15TPlugin[]> {
|
|
36
|
+
/**
|
|
37
|
+
* The base URL for the API (optional if running in a browser)
|
|
38
|
+
* @example "https://example.com"
|
|
39
|
+
*/
|
|
40
|
+
baseURL?: string;
|
|
41
|
+
/**
|
|
42
|
+
* The base path for API endpoints
|
|
43
|
+
* @default "/api/c15t"
|
|
44
|
+
* @example "/api/c15t"
|
|
45
|
+
*/
|
|
46
|
+
basePath?: string;
|
|
47
|
+
/**
|
|
48
|
+
* Application name shown in consent dialogs
|
|
49
|
+
* @example "My App"
|
|
50
|
+
*/
|
|
51
|
+
appName?: string;
|
|
52
|
+
/**
|
|
53
|
+
* Secret used for signing cookies and tokens
|
|
54
|
+
* Should be a strong, unique string in production environments
|
|
55
|
+
*/
|
|
56
|
+
secret?: string;
|
|
57
|
+
/**
|
|
58
|
+
* Database configuration
|
|
59
|
+
*/
|
|
60
|
+
database?: DatabaseConfiguration;
|
|
61
|
+
/**
|
|
62
|
+
* Enable CORS support
|
|
63
|
+
* @default true
|
|
64
|
+
*/
|
|
65
|
+
cors?: boolean;
|
|
66
|
+
/**
|
|
67
|
+
* Trusted origins for CORS
|
|
68
|
+
* Can be an array of origin strings or a function that returns origins based on the request
|
|
69
|
+
* @example ["https://example.com", "https://www.example.com"]
|
|
70
|
+
*/
|
|
71
|
+
trustedOrigins?: string[] | ((request: Request) => string[]);
|
|
72
|
+
/**
|
|
73
|
+
* Plugins to extend functionality
|
|
74
|
+
* Array of plugin objects that add features to the consent system
|
|
75
|
+
*/
|
|
76
|
+
plugins?: P;
|
|
77
|
+
/**
|
|
78
|
+
* Logger configuration
|
|
79
|
+
* Controls how events are logged
|
|
80
|
+
*/
|
|
81
|
+
logger?: Logger;
|
|
82
|
+
/**
|
|
83
|
+
* allows you to define custom hooks that can be
|
|
84
|
+
* executed during lifecycle of core database
|
|
85
|
+
* operations.
|
|
86
|
+
*/
|
|
87
|
+
databaseHooks?: DatabaseHook[];
|
|
88
|
+
advanced?: {
|
|
89
|
+
/**
|
|
90
|
+
* Ip address configuration
|
|
91
|
+
*/
|
|
92
|
+
ipAddress?: {
|
|
93
|
+
/**
|
|
94
|
+
* List of headers to use for ip address
|
|
95
|
+
*
|
|
96
|
+
* Ip address is used for rate limiting and session tracking
|
|
97
|
+
*
|
|
98
|
+
* @example ["x-client-ip", "x-forwarded-for"]
|
|
99
|
+
*
|
|
100
|
+
* @default
|
|
101
|
+
* @link https://github.com/c15t/c15t/blob/main/packages/c15t/src/utils/get-request-ip.ts#L8
|
|
102
|
+
*/
|
|
103
|
+
ipAddressHeaders?: string[];
|
|
104
|
+
/**
|
|
105
|
+
* Disable ip tracking
|
|
106
|
+
*
|
|
107
|
+
* ⚠︎ This is a security risk and it may expose your application to abuse
|
|
108
|
+
*/
|
|
109
|
+
disableIpTracking?: boolean;
|
|
110
|
+
};
|
|
111
|
+
/**
|
|
112
|
+
* Disable trusted origins check
|
|
113
|
+
*
|
|
114
|
+
* ⚠︎ This is a security risk and it may expose your application to CSRF attacks
|
|
115
|
+
*/
|
|
116
|
+
disableCSRFCheck?: boolean;
|
|
117
|
+
/**
|
|
118
|
+
* Function to generate IDs
|
|
119
|
+
* Custom ID generation for consent records and other entities
|
|
120
|
+
*/
|
|
121
|
+
generateId?: (options: {
|
|
122
|
+
model: EntityName;
|
|
123
|
+
size?: number;
|
|
124
|
+
}) => string;
|
|
125
|
+
/**
|
|
126
|
+
* Disable database transactions
|
|
127
|
+
*
|
|
128
|
+
* When true, operations will execute directly without transaction support.
|
|
129
|
+
* Useful for databases that don't support transactions or when you want to bypass transaction overhead.
|
|
130
|
+
*
|
|
131
|
+
* @default false
|
|
132
|
+
*/
|
|
133
|
+
disableTransactions?: boolean;
|
|
134
|
+
};
|
|
135
|
+
/**
|
|
136
|
+
* API error handling
|
|
137
|
+
*/
|
|
138
|
+
onAPIError?: {
|
|
139
|
+
/**
|
|
140
|
+
* Throw an error on API error
|
|
141
|
+
*
|
|
142
|
+
* @default false
|
|
143
|
+
*/
|
|
144
|
+
throw?: boolean;
|
|
145
|
+
/**
|
|
146
|
+
* Custom error handler
|
|
147
|
+
*
|
|
148
|
+
* @param error
|
|
149
|
+
* @param ctx - Auth context
|
|
150
|
+
*/
|
|
151
|
+
onError?: (error: unknown, ctx: C15TContext) => void | Promise<void>;
|
|
152
|
+
};
|
|
153
|
+
/**
|
|
154
|
+
* Hooks
|
|
155
|
+
*/
|
|
156
|
+
hooks?: {
|
|
157
|
+
/**
|
|
158
|
+
* Before a request is processed
|
|
159
|
+
*/
|
|
160
|
+
before?: C15TMiddleware;
|
|
161
|
+
/**
|
|
162
|
+
* After a request is processed
|
|
163
|
+
*/
|
|
164
|
+
after?: C15TMiddleware;
|
|
165
|
+
};
|
|
166
|
+
/**
|
|
167
|
+
* Database tables configuration
|
|
168
|
+
* Contains all entity table configurations
|
|
169
|
+
*/
|
|
170
|
+
tables?: TablesConfig;
|
|
171
|
+
}
|
|
172
|
+
//# sourceMappingURL=options.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../src/types/options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACjD;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAEvD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAChF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAGrD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,WAAW,WAAW,CAAC,CAAC,SAAS,UAAU,EAAE,GAAG,UAAU,EAAE;IACjE;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,QAAQ,CAAC,EAAE,qBAAqB,CAAC;IAEjC;;;OAGG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IAEf;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,OAAO,EAAE,OAAO,KAAK,MAAM,EAAE,CAAC,CAAC;IAE7D;;;OAGG;IACH,OAAO,CAAC,EAAE,CAAC,CAAC;IAEZ;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;;OAIG;IACH,aAAa,CAAC,EAAE,YAAY,EAAE,CAAC;IAK/B,QAAQ,CAAC,EAAE;QACV;;WAEG;QACH,SAAS,CAAC,EAAE;YACX;;;;;;;;;eASG;YACH,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;YAC5B;;;;eAIG;YACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;SAC5B,CAAC;QAEF;;;;WAIG;QACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;QAE3B;;;WAGG;QACH,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE;YAAE,KAAK,EAAE,UAAU,CAAC;YAAC,IAAI,CAAC,EAAE,MAAM,CAAA;SAAE,KAAK,MAAM,CAAC;QAEvE;;;;;;;WAOG;QACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;KAC9B,CAAC;IACF;;OAEG;IACH,UAAU,CAAC,EAAE;QACZ;;;;WAIG;QACH,KAAK,CAAC,EAAE,OAAO,CAAC;QAChB;;;;;WAKG;QACH,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,WAAW,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;KACrE,CAAC;IACF;;OAEG;IACH,KAAK,CAAC,EAAE;QACP;;WAEG;QACH,MAAM,CAAC,EAAE,cAAc,CAAC;QACxB;;WAEG;QACH,KAAK,CAAC,EAAE,cAAc,CAAC;KACvB,CAAC;IAEF;;;OAGG;IACH,MAAM,CAAC,EAAE,YAAY,CAAC;CACtB"}
|
|
@@ -0,0 +1,442 @@
|
|
|
1
|
+
import type { UnionToIntersection } from '@better-fetch/fetch';
|
|
2
|
+
/**
|
|
3
|
+
* Plugin System for c15t Consent Management
|
|
4
|
+
*
|
|
5
|
+
* This module defines the plugin system architecture for the c15t consent management system.
|
|
6
|
+
* Plugins provide a way to extend functionality with additional features like analytics,
|
|
7
|
+
* geolocation, custom consent flows, and more.
|
|
8
|
+
*/
|
|
9
|
+
import type { Endpoint } from 'better-call';
|
|
10
|
+
import type { Migration } from 'kysely';
|
|
11
|
+
import type { C15TMiddleware } from '../api/call';
|
|
12
|
+
import type { Field } from '../db/core/fields';
|
|
13
|
+
import type { C15TContext, C15TOptions, DeepPartial, HookEndpointContext, LiteralString } from './index';
|
|
14
|
+
/**
|
|
15
|
+
* Context object provided to plugin hooks
|
|
16
|
+
*
|
|
17
|
+
* This extends the standard endpoint context with additional properties
|
|
18
|
+
* specific to plugin hooks, such as the request path and geolocation data.
|
|
19
|
+
*/
|
|
20
|
+
export interface PluginHookContext {
|
|
21
|
+
/**
|
|
22
|
+
* The path of the current request
|
|
23
|
+
*/
|
|
24
|
+
path: string;
|
|
25
|
+
/**
|
|
26
|
+
* Geolocation information (added by the geo plugin)
|
|
27
|
+
*/
|
|
28
|
+
geo?: {
|
|
29
|
+
/**
|
|
30
|
+
* IP address of the request
|
|
31
|
+
*/
|
|
32
|
+
ip: string;
|
|
33
|
+
/**
|
|
34
|
+
* Country code (ISO 3166-1 alpha-2)
|
|
35
|
+
*/
|
|
36
|
+
country?: string;
|
|
37
|
+
/**
|
|
38
|
+
* Region or state code
|
|
39
|
+
*/
|
|
40
|
+
region?: string;
|
|
41
|
+
/**
|
|
42
|
+
* Source of the geolocation data
|
|
43
|
+
*/
|
|
44
|
+
source: string;
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Plugin hook definition
|
|
49
|
+
*
|
|
50
|
+
* Hooks are used to run custom logic at specific points in the request lifecycle.
|
|
51
|
+
* Each hook includes a matcher function to determine when it should run and
|
|
52
|
+
* a handler function that contains the actual logic.
|
|
53
|
+
*/
|
|
54
|
+
export interface PluginHook {
|
|
55
|
+
/**
|
|
56
|
+
* A function to determine if this hook should run for the current request
|
|
57
|
+
*
|
|
58
|
+
* @param context - The hook context with request details
|
|
59
|
+
* @returns True if the hook should run, false otherwise
|
|
60
|
+
*/
|
|
61
|
+
matcher: (context: PluginHookContext) => boolean;
|
|
62
|
+
/**
|
|
63
|
+
* The hook handler that runs if matcher returns true
|
|
64
|
+
*
|
|
65
|
+
* @param context - The hook context with request details
|
|
66
|
+
* @returns A Promise that resolves when the hook completes, or void
|
|
67
|
+
*/
|
|
68
|
+
handler: (context: PluginHookContext) => Promise<void> | void;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* c15t Plugin Definition
|
|
72
|
+
*
|
|
73
|
+
* This interface defines the structure of a plugin for the c15t consent management system.
|
|
74
|
+
* Plugins can add endpoints, hooks, error codes, and custom functionality.
|
|
75
|
+
*
|
|
76
|
+
* @example
|
|
77
|
+
* ```typescript
|
|
78
|
+
* const myPlugin: C15TPlugin = {
|
|
79
|
+
* id: 'my-plugin',
|
|
80
|
+
* init: (context) => {
|
|
81
|
+
* // Initialize plugin
|
|
82
|
+
* },
|
|
83
|
+
* endpoints: {
|
|
84
|
+
* myEndpoint: createEndpoint('/my-endpoint', async (ctx) => {
|
|
85
|
+
* return ctx.json({ success: true });
|
|
86
|
+
* })
|
|
87
|
+
* }
|
|
88
|
+
* };
|
|
89
|
+
* ```
|
|
90
|
+
*/
|
|
91
|
+
export interface C15TPlugin {
|
|
92
|
+
/**
|
|
93
|
+
* Unique identifier for the plugin
|
|
94
|
+
* Must be a string literal for type safety
|
|
95
|
+
*/
|
|
96
|
+
id: LiteralString;
|
|
97
|
+
/**
|
|
98
|
+
* Name of the plugin
|
|
99
|
+
*/
|
|
100
|
+
name: string;
|
|
101
|
+
/**
|
|
102
|
+
* Type of plugin for classification and type guards
|
|
103
|
+
*/
|
|
104
|
+
type: string;
|
|
105
|
+
/**
|
|
106
|
+
* The init function is called when the plugin is initialized.
|
|
107
|
+
* You can return a new context or modify the existing context.
|
|
108
|
+
*
|
|
109
|
+
* @param ctx - The c15t context
|
|
110
|
+
* @returns An object with context or options modifications, or undefined
|
|
111
|
+
*/
|
|
112
|
+
init?: (ctx: C15TContext) => {
|
|
113
|
+
context?: DeepPartial<Omit<C15TContext, 'options'>>;
|
|
114
|
+
options?: Partial<C15TOptions>;
|
|
115
|
+
} | undefined;
|
|
116
|
+
/**
|
|
117
|
+
* Custom API endpoints provided by this plugin
|
|
118
|
+
* Each key is the endpoint name, and the value is the endpoint handler
|
|
119
|
+
*/
|
|
120
|
+
endpoints?: {
|
|
121
|
+
[key: string]: Endpoint;
|
|
122
|
+
};
|
|
123
|
+
/**
|
|
124
|
+
* Middleware functions to process requests for specific paths
|
|
125
|
+
* Each middleware includes a path pattern and the middleware function
|
|
126
|
+
*/
|
|
127
|
+
middlewares?: {
|
|
128
|
+
path: string;
|
|
129
|
+
middleware: Endpoint;
|
|
130
|
+
}[];
|
|
131
|
+
/**
|
|
132
|
+
* Handler for intercepting and potentially modifying incoming requests
|
|
133
|
+
*
|
|
134
|
+
* @param request - The incoming HTTP request
|
|
135
|
+
* @param ctx - The c15t context
|
|
136
|
+
* @returns A modified request, a response to short-circuit handling, or undefined to continue
|
|
137
|
+
*/
|
|
138
|
+
onRequest?: (request: Request, ctx: C15TContext) => Promise<{
|
|
139
|
+
response: Response;
|
|
140
|
+
} | {
|
|
141
|
+
request: Request;
|
|
142
|
+
} | undefined>;
|
|
143
|
+
/**
|
|
144
|
+
* Handler for intercepting and potentially modifying outgoing responses
|
|
145
|
+
*
|
|
146
|
+
* @param response - The outgoing HTTP response
|
|
147
|
+
* @param ctx - The c15t context
|
|
148
|
+
* @returns A modified response or undefined to continue with the original
|
|
149
|
+
*/
|
|
150
|
+
onResponse?: (response: Response, ctx: C15TContext) => Promise<{
|
|
151
|
+
response: Response;
|
|
152
|
+
} | undefined>;
|
|
153
|
+
/**
|
|
154
|
+
* Request lifecycle hooks for executing code before or after endpoint handling
|
|
155
|
+
*/
|
|
156
|
+
hooks?: {
|
|
157
|
+
/**
|
|
158
|
+
* Hooks that run before the endpoint handler
|
|
159
|
+
* Each hook has a matcher to determine when it should run
|
|
160
|
+
*/
|
|
161
|
+
before?: {
|
|
162
|
+
matcher: (context: HookEndpointContext) => boolean;
|
|
163
|
+
handler: C15TMiddleware;
|
|
164
|
+
}[];
|
|
165
|
+
/**
|
|
166
|
+
* Hooks that run after the endpoint handler has completed
|
|
167
|
+
* Each hook has a matcher to determine when it should run
|
|
168
|
+
*/
|
|
169
|
+
after?: {
|
|
170
|
+
matcher: (context: HookEndpointContext) => boolean;
|
|
171
|
+
handler: C15TMiddleware;
|
|
172
|
+
}[];
|
|
173
|
+
};
|
|
174
|
+
/**
|
|
175
|
+
* Schema the plugin needs
|
|
176
|
+
*
|
|
177
|
+
* This will also be used to migrate the database. If the fields are dynamic from the plugins
|
|
178
|
+
* configuration each time the configuration is changed a new migration will be created.
|
|
179
|
+
*
|
|
180
|
+
* NOTE: If you want to create migrations manually using
|
|
181
|
+
* migrations option or any other way you
|
|
182
|
+
* can disable migration per table basis.
|
|
183
|
+
*
|
|
184
|
+
* @example
|
|
185
|
+
* ```ts
|
|
186
|
+
* schema: {
|
|
187
|
+
* subject: {
|
|
188
|
+
* fields: {
|
|
189
|
+
* email: {
|
|
190
|
+
* type: "string",
|
|
191
|
+
* },
|
|
192
|
+
* emailVerified: {
|
|
193
|
+
* type: "boolean",
|
|
194
|
+
* defaultValue: false,
|
|
195
|
+
* },
|
|
196
|
+
* },
|
|
197
|
+
* }
|
|
198
|
+
* } as AuthPluginSchema
|
|
199
|
+
* ```
|
|
200
|
+
*/
|
|
201
|
+
schema?: C15TPluginSchema;
|
|
202
|
+
/**
|
|
203
|
+
* The migrations of the plugin. If you define schema that will automatically create
|
|
204
|
+
* migrations for you.
|
|
205
|
+
*
|
|
206
|
+
* ⚠️ Only uses this if you dont't want to use the schema option and you disabled migrations for
|
|
207
|
+
* the tables.
|
|
208
|
+
*/
|
|
209
|
+
migrations?: Record<string, Migration>;
|
|
210
|
+
/**
|
|
211
|
+
* The options of the plugin
|
|
212
|
+
*/
|
|
213
|
+
options?: Record<string, unknown>;
|
|
214
|
+
/**
|
|
215
|
+
* Types to be inferred by the type system
|
|
216
|
+
* Used for type information in the plugin system
|
|
217
|
+
*/
|
|
218
|
+
$Infer?: Record<string, unknown>;
|
|
219
|
+
/**
|
|
220
|
+
* The error codes returned by the plugin
|
|
221
|
+
* Used for consistent error handling across the system
|
|
222
|
+
*/
|
|
223
|
+
$ERROR_CODES?: Record<string, string>;
|
|
224
|
+
/**
|
|
225
|
+
* Type information for context extensions provided by this plugin
|
|
226
|
+
* This will be used to properly type the context in hooks and methods
|
|
227
|
+
*/
|
|
228
|
+
$InferContext?: Record<string, unknown>;
|
|
229
|
+
}
|
|
230
|
+
/**
|
|
231
|
+
* Improved type inference for plugin types
|
|
232
|
+
*
|
|
233
|
+
* This type utility extracts all plugin type definitions from configuration options,
|
|
234
|
+
* allowing for comprehensive type checking of plugin features.
|
|
235
|
+
*
|
|
236
|
+
* @typeParam TOptions - The c15t configuration options type
|
|
237
|
+
*
|
|
238
|
+
* @example
|
|
239
|
+
* ```ts
|
|
240
|
+
* // Get all plugin types from configuration
|
|
241
|
+
* type AllPluginTypes = ExtractPluginTypeDefinitions<MyAppOptions>;
|
|
242
|
+
*
|
|
243
|
+
* // Types will include all properties from all plugins' $Infer fields
|
|
244
|
+
* ```
|
|
245
|
+
*/
|
|
246
|
+
export type ExtractPluginTypeDefinitions<TOptions extends C15TOptions> = TOptions['plugins'] extends Array<infer Plugin> ? Plugin extends C15TPlugin ? Plugin extends {
|
|
247
|
+
$Infer: infer PluginTypes;
|
|
248
|
+
} ? PluginTypes extends Record<string, unknown> ? PluginTypes : Record<string, never> : Record<string, never> : Record<string, never> : Record<string, never>;
|
|
249
|
+
/**
|
|
250
|
+
* Helper to extract specific plugin type from options
|
|
251
|
+
*
|
|
252
|
+
* This type utility finds plugins of a specific type from a configuration
|
|
253
|
+
* object, enabling type-safe access to plugin instances.
|
|
254
|
+
*
|
|
255
|
+
* @typeParam O - The c15t configuration options type
|
|
256
|
+
* @typeParam T - The plugin type string to extract
|
|
257
|
+
*
|
|
258
|
+
* @example
|
|
259
|
+
* ```ts
|
|
260
|
+
* // Extract all analytics plugins from configuration
|
|
261
|
+
* type MyAnalyticsPlugins = ExtractPluginType<MyAppOptions, 'analytics'>;
|
|
262
|
+
* ```
|
|
263
|
+
*/
|
|
264
|
+
export type ExtractPluginType<O extends C15TOptions, T extends string> = O['plugins'] extends Array<infer P> ? P extends C15TPlugin ? P extends {
|
|
265
|
+
type: T;
|
|
266
|
+
} ? P : never : never : never;
|
|
267
|
+
/**
|
|
268
|
+
* Type-safe plugin factory function
|
|
269
|
+
*
|
|
270
|
+
* A type definition for functions that create plugin instances with proper typing.
|
|
271
|
+
*
|
|
272
|
+
* @typeParam T - The specific plugin type being created
|
|
273
|
+
*
|
|
274
|
+
* @example
|
|
275
|
+
* ```ts
|
|
276
|
+
* // Create a type-safe plugin factory
|
|
277
|
+
* const createAnalyticsPlugin: PluginFactory<AnalyticsPlugin> =
|
|
278
|
+
* (options) => ({
|
|
279
|
+
* id: options?.id || 'analytics',
|
|
280
|
+
* type: 'analytics',
|
|
281
|
+
* // Other plugin properties
|
|
282
|
+
* analyticsOptions: options?.analyticsOptions
|
|
283
|
+
* });
|
|
284
|
+
* ```
|
|
285
|
+
*/
|
|
286
|
+
export type PluginFactory<T extends C15TPlugin> = (options?: Omit<T, 'id' | 'type'> & {
|
|
287
|
+
id?: string;
|
|
288
|
+
}) => T;
|
|
289
|
+
/**
|
|
290
|
+
* Infer plugin error codes from configuration options
|
|
291
|
+
*
|
|
292
|
+
* This type utility extracts the error codes defined by plugins from a configuration object,
|
|
293
|
+
* allowing TypeScript to understand the possible error codes.
|
|
294
|
+
*
|
|
295
|
+
* @typeParam O - The c15t configuration options type
|
|
296
|
+
*
|
|
297
|
+
* @example
|
|
298
|
+
* ```ts
|
|
299
|
+
* // Get all error codes from plugins
|
|
300
|
+
* type AllErrorCodes = InferPluginErrorCodes<MyAppOptions>;
|
|
301
|
+
* ```
|
|
302
|
+
*/
|
|
303
|
+
export type InferPluginErrorCodes<O extends C15TOptions> = O['plugins'] extends Array<infer P> ? P extends C15TPlugin ? P['$ERROR_CODES'] extends infer EC ? EC extends Record<string, unknown> ? EC : Record<string, never> : Record<string, never> : Record<string, never> : Record<string, never>;
|
|
304
|
+
/**
|
|
305
|
+
* Schema type for plugin database extensions
|
|
306
|
+
*
|
|
307
|
+
* This defines the structure for database schema extensions provided by plugins,
|
|
308
|
+
* including table definitions, fields, and migration controls.
|
|
309
|
+
*/
|
|
310
|
+
export type C15TPluginSchema = {
|
|
311
|
+
[table in string]: {
|
|
312
|
+
/**
|
|
313
|
+
* Field definitions for this table
|
|
314
|
+
*/
|
|
315
|
+
fields: {
|
|
316
|
+
[field in string]: Field;
|
|
317
|
+
};
|
|
318
|
+
/**
|
|
319
|
+
* Whether to disable automatic migration generation for this table
|
|
320
|
+
*/
|
|
321
|
+
disableMigration?: boolean;
|
|
322
|
+
/**
|
|
323
|
+
* Custom entity name for this table
|
|
324
|
+
*/
|
|
325
|
+
entityName?: string;
|
|
326
|
+
};
|
|
327
|
+
};
|
|
328
|
+
/**
|
|
329
|
+
* Analytics plugin type definition
|
|
330
|
+
*
|
|
331
|
+
* Specialized plugin type for analytics functionality with type-safe options.
|
|
332
|
+
*
|
|
333
|
+
* @example
|
|
334
|
+
* ```ts
|
|
335
|
+
* // Create an analytics plugin
|
|
336
|
+
* const analytics: AnalyticsPlugin = {
|
|
337
|
+
* id: 'google-analytics',
|
|
338
|
+
* type: 'analytics',
|
|
339
|
+
* analyticsOptions: {
|
|
340
|
+
* trackingEvents: ['consent_given', 'consent_withdrawn'],
|
|
341
|
+
* anonymizeData: true
|
|
342
|
+
* }
|
|
343
|
+
* };
|
|
344
|
+
* ```
|
|
345
|
+
*/
|
|
346
|
+
export interface AnalyticsPlugin extends C15TPlugin {
|
|
347
|
+
type: 'analytics';
|
|
348
|
+
analyticsOptions?: {
|
|
349
|
+
/**
|
|
350
|
+
* List of events to track
|
|
351
|
+
*/
|
|
352
|
+
trackingEvents: string[];
|
|
353
|
+
/**
|
|
354
|
+
* Whether to anonymize subject data
|
|
355
|
+
*/
|
|
356
|
+
anonymizeData?: boolean;
|
|
357
|
+
};
|
|
358
|
+
}
|
|
359
|
+
/**
|
|
360
|
+
* Geolocation plugin type definition
|
|
361
|
+
*
|
|
362
|
+
* Specialized plugin type for geolocation functionality with type-safe options.
|
|
363
|
+
*
|
|
364
|
+
* @example
|
|
365
|
+
* ```ts
|
|
366
|
+
* // Create a geolocation plugin
|
|
367
|
+
* const geo: GeoPlugin = {
|
|
368
|
+
* id: 'maxmind',
|
|
369
|
+
* type: 'geo',
|
|
370
|
+
* geoOptions: {
|
|
371
|
+
* defaultJurisdiction: 'EU',
|
|
372
|
+
* ipLookupService: 'https://geo.example.com'
|
|
373
|
+
* }
|
|
374
|
+
* };
|
|
375
|
+
* ```
|
|
376
|
+
*/
|
|
377
|
+
export interface GeoPlugin extends C15TPlugin {
|
|
378
|
+
type: 'geo';
|
|
379
|
+
geoOptions?: {
|
|
380
|
+
/**
|
|
381
|
+
* Default jurisdiction to use when geolocation fails
|
|
382
|
+
*/
|
|
383
|
+
defaultJurisdiction?: string;
|
|
384
|
+
/**
|
|
385
|
+
* Service URL for IP address lookups
|
|
386
|
+
*/
|
|
387
|
+
ipLookupService?: string;
|
|
388
|
+
};
|
|
389
|
+
}
|
|
390
|
+
/**
|
|
391
|
+
* Type guard to check if a plugin is an analytics plugin
|
|
392
|
+
*
|
|
393
|
+
* @param plugin - The plugin to check
|
|
394
|
+
* @returns True if the plugin is an analytics plugin
|
|
395
|
+
*
|
|
396
|
+
* @example
|
|
397
|
+
* ```ts
|
|
398
|
+
* if (isAnalyticsPlugin(plugin)) {
|
|
399
|
+
* // Can safely access analyticsOptions
|
|
400
|
+
* const events = plugin.analyticsOptions?.trackingEvents;
|
|
401
|
+
* }
|
|
402
|
+
* ```
|
|
403
|
+
*/
|
|
404
|
+
export declare function isAnalyticsPlugin(plugin: C15TPlugin): plugin is AnalyticsPlugin;
|
|
405
|
+
/**
|
|
406
|
+
* Type guard to check if a plugin is a geo plugin
|
|
407
|
+
*
|
|
408
|
+
* @param plugin - The plugin to check
|
|
409
|
+
* @returns True if the plugin is a geo plugin
|
|
410
|
+
*
|
|
411
|
+
* @example
|
|
412
|
+
* ```ts
|
|
413
|
+
* if (isGeoPlugin(plugin)) {
|
|
414
|
+
* // Can safely access geoOptions
|
|
415
|
+
* const defaultRegion = plugin.geoOptions?.defaultJurisdiction;
|
|
416
|
+
* }
|
|
417
|
+
* ```
|
|
418
|
+
*/
|
|
419
|
+
export declare function isGeoPlugin(plugin: C15TPlugin): plugin is GeoPlugin;
|
|
420
|
+
/**
|
|
421
|
+
* Helper to extract plugin context types from plugin array
|
|
422
|
+
*
|
|
423
|
+
* This utility combines all context extensions from an array of plugins
|
|
424
|
+
* into a single type, allowing for proper typing of the complete context.
|
|
425
|
+
*
|
|
426
|
+
* @typeParam PluginArray - Array of plugin types
|
|
427
|
+
*
|
|
428
|
+
* @example
|
|
429
|
+
* ```ts
|
|
430
|
+
* // Given plugins array with plugins that extend context
|
|
431
|
+
* const plugins = [authPlugin, geoPlugin, analyticsPlugin];
|
|
432
|
+
*
|
|
433
|
+
* // Get combined context type from all plugins
|
|
434
|
+
* type MyAppContext = InferPluginContexts<typeof plugins>;
|
|
435
|
+
*
|
|
436
|
+
* // Context will have auth, geo, and analytics properties with correct types
|
|
437
|
+
* ```
|
|
438
|
+
*/
|
|
439
|
+
export type InferPluginContexts<PluginArray extends C15TPlugin[]> = UnionToIntersection<PluginArray extends Array<infer SinglePlugin> ? SinglePlugin extends C15TPlugin ? SinglePlugin extends {
|
|
440
|
+
$InferContext: infer ContextType;
|
|
441
|
+
} ? ContextType extends Record<string, unknown> ? ContextType : Record<string, never> : Record<string, never> : Record<string, never> : Record<string, never>> & Record<string, unknown>;
|
|
442
|
+
//# sourceMappingURL=plugins.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugins.d.ts","sourceRoot":"","sources":["../../src/types/plugins.ts"],"names":[],"mappings":"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"}
|