@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 @@
|
|
|
1
|
+
{"version":3,"file":"create-registry.d.ts","sourceRoot":"","sources":["../../src/db/create-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAgBvD,eAAO,MAAM,cAAc,GAAI,KAAK,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAeu+D,CAAC;yBAA8B,CAAC;iBAAsB,CAAC;eAAoB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBAA1N,CAAC;kBAAuB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CADp6D,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { Adapter } from '../adapters/types';
|
|
2
|
+
import type { CreateWithHooksProps, HookContext } from './types';
|
|
3
|
+
/**
|
|
4
|
+
* Creates a record with hooks applied before and after creation.
|
|
5
|
+
*
|
|
6
|
+
* @typeParam TInputData - Type of the data being created
|
|
7
|
+
* @typeParam TOutputData - Type of the data returned after creation
|
|
8
|
+
*
|
|
9
|
+
* @param adapter - The database adapter to use
|
|
10
|
+
* @param ctx - Context containing hooks and options
|
|
11
|
+
* @param props - Properties for the create operation
|
|
12
|
+
* @returns The created record or null if a hook aborted the operation
|
|
13
|
+
*
|
|
14
|
+
* @remarks
|
|
15
|
+
* This function orchestrates the entity creation process, executing hooks
|
|
16
|
+
* at appropriate times to allow validation, transformation, and post-processing.
|
|
17
|
+
* It supports both standard adapter-based creation and custom creation functions.
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* ```typescript
|
|
21
|
+
* const subject = await createWithHook(
|
|
22
|
+
* mysqlAdapter,
|
|
23
|
+
* { hooks: subjectHooks, options: config },
|
|
24
|
+
* {
|
|
25
|
+
* data: { name: 'Alice' },
|
|
26
|
+
* model: 'subject'
|
|
27
|
+
* }
|
|
28
|
+
* );
|
|
29
|
+
* ```
|
|
30
|
+
*/
|
|
31
|
+
export declare function createWithHook<TInputData extends Record<string, unknown> = Record<string, unknown>, TOutputData extends Record<string, unknown> = TInputData>(adapter: Adapter, ctx: HookContext, props: CreateWithHooksProps<TInputData>): Promise<TOutputData | null>;
|
|
32
|
+
//# sourceMappingURL=create-hooks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-hooks.d.ts","sourceRoot":"","sources":["../../../src/db/hooks/create-hooks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAEjD,OAAO,KAAK,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAGjE;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAsB,cAAc,CACnC,UAAU,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACpE,WAAW,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,UAAU,EAExD,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,WAAW,EAChB,KAAK,EAAE,oBAAoB,CAAC,UAAU,CAAC,GACrC,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CA+C7B"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Database Hooks Module
|
|
3
|
+
*
|
|
4
|
+
* A comprehensive system for intercepting, validating, and transforming data
|
|
5
|
+
* during database operations. Hooks provide a powerful way to implement
|
|
6
|
+
* cross-cutting concerns like validation, authorization, and data enrichment.
|
|
7
|
+
*
|
|
8
|
+
* This module provides:
|
|
9
|
+
* - Type definitions for hooks and their operations
|
|
10
|
+
* - Core hook processing utilities
|
|
11
|
+
* - Operation-specific hook implementations (create, update, updateMany)
|
|
12
|
+
* - A factory for generating hook-enabled database operations
|
|
13
|
+
*
|
|
14
|
+
* @module db/hooks
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* ```typescript
|
|
18
|
+
* import { getWithHooks } from '~/db/hooks';
|
|
19
|
+
* import { adapter } from '~/adapters';
|
|
20
|
+
*
|
|
21
|
+
* // Create hook-enabled database operations
|
|
22
|
+
* const { createWithHooks } = getWithHooks(adapter, {
|
|
23
|
+
* options: config,
|
|
24
|
+
* hooks: config.databaseHooks || []
|
|
25
|
+
* });
|
|
26
|
+
*
|
|
27
|
+
* // Use hooks with database operations
|
|
28
|
+
* const subject = await createWithHooks({
|
|
29
|
+
* data: { name: 'Alice', email: 'alice@example.com' },
|
|
30
|
+
* model: 'subject'
|
|
31
|
+
* });
|
|
32
|
+
* ```
|
|
33
|
+
*/
|
|
34
|
+
export * from './types';
|
|
35
|
+
export * from './utils';
|
|
36
|
+
export * from './create-hooks';
|
|
37
|
+
export * from './update-hooks';
|
|
38
|
+
export * from './update-many-hooks';
|
|
39
|
+
export * from './with-hooks-factory';
|
|
40
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/db/hooks/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
import type { Where } from '../adapters/types';
|
|
2
|
+
import type { C15TOptions, GenericEndpointContext } from '../../types';
|
|
3
|
+
import type { EntityName, EntityTypeMap } from '../core/types';
|
|
4
|
+
/**
|
|
5
|
+
* Defines execution phases when hooks can run in the database operation lifecycle.
|
|
6
|
+
*/
|
|
7
|
+
export type HookPhase = 'before' | 'after';
|
|
8
|
+
/**
|
|
9
|
+
* Defines database operations that can have hooks attached.
|
|
10
|
+
*/
|
|
11
|
+
export type HookOperation = 'create' | 'update';
|
|
12
|
+
/**
|
|
13
|
+
* Result types for hook execution that control the flow of operations.
|
|
14
|
+
*
|
|
15
|
+
* @typeParam TData - The data type being processed by the hook
|
|
16
|
+
*
|
|
17
|
+
* @remarks
|
|
18
|
+
* Hook functions can return different result types to control operation flow:
|
|
19
|
+
* - `{ kind: 'abort' }` - Abort the operation entirely
|
|
20
|
+
* - `{ kind: 'transform', data: TData }` - Transform the data and continue
|
|
21
|
+
* - `{ kind: 'continue' }` - Continue with unchanged data
|
|
22
|
+
*
|
|
23
|
+
* @example
|
|
24
|
+
* ```typescript
|
|
25
|
+
* // Abort if validation fails
|
|
26
|
+
* if (!isValid(data)) {
|
|
27
|
+
* return { kind: 'abort' };
|
|
28
|
+
* }
|
|
29
|
+
* ```
|
|
30
|
+
*/
|
|
31
|
+
export type HookResult<TData> = {
|
|
32
|
+
kind: 'abort';
|
|
33
|
+
} | {
|
|
34
|
+
kind: 'transform';
|
|
35
|
+
data: TData;
|
|
36
|
+
} | {
|
|
37
|
+
kind: 'continue';
|
|
38
|
+
};
|
|
39
|
+
/**
|
|
40
|
+
* Hook function for a specific entity type, providing before/after hooks
|
|
41
|
+
* for create and update operations.
|
|
42
|
+
*
|
|
43
|
+
* @typeParam TEntityName - The entity type this hook applies to
|
|
44
|
+
*
|
|
45
|
+
* @remarks
|
|
46
|
+
* ModelHook provides a structured way to define hooks for different
|
|
47
|
+
* database operations on a specific entity type.
|
|
48
|
+
*
|
|
49
|
+
* @example
|
|
50
|
+
* ```typescript
|
|
51
|
+
* const subjectHook: ModelHook<'subject'> = {
|
|
52
|
+
* create: {
|
|
53
|
+
* before: (subjectData) => ({
|
|
54
|
+
* kind: 'transform',
|
|
55
|
+
* data: { ...subjectData, createdAt: new Date() }
|
|
56
|
+
* })
|
|
57
|
+
* }
|
|
58
|
+
* };
|
|
59
|
+
* ```
|
|
60
|
+
*/
|
|
61
|
+
export interface ModelHook<TEntityName extends EntityName = EntityName> {
|
|
62
|
+
create?: {
|
|
63
|
+
before?: (data: EntityTypeMap[TEntityName], context?: GenericEndpointContext) => Promise<HookResult<EntityTypeMap[TEntityName]> | undefined> | HookResult<EntityTypeMap[TEntityName]> | undefined;
|
|
64
|
+
after?: (data: EntityTypeMap[TEntityName], context?: GenericEndpointContext) => Promise<void> | void;
|
|
65
|
+
};
|
|
66
|
+
update?: {
|
|
67
|
+
before?: (data: Partial<EntityTypeMap[TEntityName]>, context?: GenericEndpointContext) => Promise<HookResult<Partial<EntityTypeMap[TEntityName]>> | undefined> | HookResult<Partial<EntityTypeMap[TEntityName]>> | undefined;
|
|
68
|
+
after?: (data: EntityTypeMap[TEntityName], context?: GenericEndpointContext) => Promise<void> | void;
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* A collection of hooks for different entity types in the database.
|
|
73
|
+
*
|
|
74
|
+
* @remarks
|
|
75
|
+
* This is the primary way to register hooks in the system.
|
|
76
|
+
*/
|
|
77
|
+
export type DatabaseHook = {
|
|
78
|
+
[TEntityName in EntityName]?: ModelHook<TEntityName>;
|
|
79
|
+
};
|
|
80
|
+
/**
|
|
81
|
+
* Context object containing application options and registered hooks.
|
|
82
|
+
*/
|
|
83
|
+
export interface HookContext {
|
|
84
|
+
hooks: DatabaseHook[];
|
|
85
|
+
options: C15TOptions;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Interface for defining custom operation functions that can be used
|
|
89
|
+
* in place of or alongside standard database operations.
|
|
90
|
+
*
|
|
91
|
+
* @typeParam TInputData - The input data type for the operation
|
|
92
|
+
* @typeParam TOutputData - The output data type for the operation
|
|
93
|
+
*
|
|
94
|
+
* @remarks
|
|
95
|
+
* Custom functions allow for specialized behavior when standard
|
|
96
|
+
* CRUD operations aren't sufficient.
|
|
97
|
+
*/
|
|
98
|
+
export interface CustomOperationFunction<TInputData extends Record<string, unknown> = Record<string, unknown>, TOutputData = TInputData> {
|
|
99
|
+
fn: (data: TOutputData) => Promise<TOutputData | null> | TOutputData | null;
|
|
100
|
+
executeMainFn?: boolean;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Properties for creating a record with hooks.
|
|
104
|
+
*
|
|
105
|
+
* @typeParam TData - The data type being created
|
|
106
|
+
*
|
|
107
|
+
* @remarks
|
|
108
|
+
* This is the parameter object for the createWithHook function.
|
|
109
|
+
*/
|
|
110
|
+
export interface CreateWithHooksProps<TData extends Record<string, unknown> = Record<string, unknown>> {
|
|
111
|
+
data: TData;
|
|
112
|
+
model: EntityName;
|
|
113
|
+
customFn?: CustomOperationFunction<TData>;
|
|
114
|
+
context?: GenericEndpointContext;
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Properties for updating records with hooks.
|
|
118
|
+
*
|
|
119
|
+
* @typeParam TInputData - The input data type for the update
|
|
120
|
+
* @typeParam TOutputData - The expected output data type
|
|
121
|
+
* @typeParam TResultData - The final result data type
|
|
122
|
+
*
|
|
123
|
+
* @remarks
|
|
124
|
+
* This is the parameter object for updateWithHooks and updateManyWithHooks functions.
|
|
125
|
+
*/
|
|
126
|
+
export interface UpdateWithHooksProps<TInputData extends Record<string, unknown> = Record<string, unknown>, TOutputData = TInputData, TResultData = TOutputData> {
|
|
127
|
+
data: Partial<TInputData>;
|
|
128
|
+
where: Where<EntityName>;
|
|
129
|
+
model: EntityName;
|
|
130
|
+
customFn?: CustomOperationFunction<Partial<TInputData>, TResultData>;
|
|
131
|
+
context?: GenericEndpointContext;
|
|
132
|
+
}
|
|
133
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/db/hooks/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { Adapter } from '../adapters/types';
|
|
2
|
+
import type { HookContext, UpdateWithHooksProps } from './types';
|
|
3
|
+
/**
|
|
4
|
+
* Updates a record with hooks applied before and after the update operation.
|
|
5
|
+
*
|
|
6
|
+
* @typeParam TInputData - Type of the data being updated
|
|
7
|
+
* @typeParam TOutputData - Type of the data returned after update
|
|
8
|
+
*
|
|
9
|
+
* @param adapter - The database adapter to use
|
|
10
|
+
* @param ctx - Context containing hooks and options
|
|
11
|
+
* @param props - Properties for the update operation
|
|
12
|
+
* @returns The updated record or null if a hook aborted the operation
|
|
13
|
+
*
|
|
14
|
+
* @remarks
|
|
15
|
+
* This function orchestrates the entity update process, executing hooks
|
|
16
|
+
* at appropriate times to allow validation, transformation, and post-processing.
|
|
17
|
+
* It supports both standard adapter-based updates and custom update functions.
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* ```typescript
|
|
21
|
+
* const updatedSubject = await updateWithHooks(
|
|
22
|
+
* mysqlAdapter,
|
|
23
|
+
* { hooks: subjectHooks, options: config },
|
|
24
|
+
* {
|
|
25
|
+
* data: { status: 'active' },
|
|
26
|
+
* where: { id: 'sub_x1pftyoufsm7xgo1kv' },
|
|
27
|
+
* model: 'subject'
|
|
28
|
+
* }
|
|
29
|
+
* );
|
|
30
|
+
* ```
|
|
31
|
+
*/
|
|
32
|
+
export declare function updateWithHooks<TInputData extends Record<string, unknown> = Record<string, unknown>, TOutputData extends Record<string, unknown> = TInputData>(adapter: Adapter, ctx: HookContext, props: UpdateWithHooksProps<TInputData, TOutputData>): Promise<TOutputData | null>;
|
|
33
|
+
//# sourceMappingURL=update-hooks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update-hooks.d.ts","sourceRoot":"","sources":["../../../src/db/hooks/update-hooks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAEjD,OAAO,KAAK,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAGjE;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAsB,eAAe,CACpC,UAAU,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACpE,WAAW,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,UAAU,EAExD,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,WAAW,EAChB,KAAK,EAAE,oBAAoB,CAAC,UAAU,EAAE,WAAW,CAAC,GAClD,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAiD7B"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import type { Adapter } from '../adapters/types';
|
|
2
|
+
import type { HookContext, UpdateWithHooksProps } from './types';
|
|
3
|
+
/**
|
|
4
|
+
* Updates multiple records with hooks applied before and after the batch update.
|
|
5
|
+
*
|
|
6
|
+
* This function orchestrates the batch update process, executing hooks
|
|
7
|
+
* at appropriate times to allow validation, transformation, and post-processing
|
|
8
|
+
* for multiple records simultaneously.
|
|
9
|
+
*
|
|
10
|
+
* @template TInputData - Type of the data being updated
|
|
11
|
+
* @template TOutputData - Type of the data returned after update
|
|
12
|
+
*
|
|
13
|
+
* @param adapter - The database adapter to use
|
|
14
|
+
* @param ctx - Context containing hooks and options
|
|
15
|
+
* @param props - Properties for the updateMany operation
|
|
16
|
+
*
|
|
17
|
+
* @returns The updated records or null if a hook aborted the operation
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* ```typescript
|
|
21
|
+
* // Batch update subjects
|
|
22
|
+
* const updatedSubjects = await updateManyWithHooks(
|
|
23
|
+
* mysqlAdapter,
|
|
24
|
+
* { hooks: subjectHooks, options: config },
|
|
25
|
+
* {
|
|
26
|
+
* data: { isVerified: true },
|
|
27
|
+
* where: { emailDomain: 'example.com' },
|
|
28
|
+
* model: 'subject'
|
|
29
|
+
* }
|
|
30
|
+
* );
|
|
31
|
+
*
|
|
32
|
+
* // With custom function for complex batch processing
|
|
33
|
+
* const updatedPosts = await updateManyWithHooks(
|
|
34
|
+
* mysqlAdapter,
|
|
35
|
+
* { hooks: postHooks, options: config },
|
|
36
|
+
* {
|
|
37
|
+
* data: { isArchived: true },
|
|
38
|
+
* where: { createdAt: { lt: oneYearAgo } },
|
|
39
|
+
* model: 'post',
|
|
40
|
+
* customFn: {
|
|
41
|
+
* fn: async (data) => {
|
|
42
|
+
* // Get posts to be archived
|
|
43
|
+
* const postsToArchive = await postService.findOldPosts();
|
|
44
|
+
* // Custom batch processing
|
|
45
|
+
* const archivedPosts = await postService.batchArchive(postsToArchive, data);
|
|
46
|
+
* return archivedPosts;
|
|
47
|
+
* },
|
|
48
|
+
* executeMainFn: false // Skip standard update as custom function handles it
|
|
49
|
+
* }
|
|
50
|
+
* }
|
|
51
|
+
* );
|
|
52
|
+
* ```
|
|
53
|
+
*/
|
|
54
|
+
export declare function updateManyWithHooks<TInputData extends Record<string, unknown> = Record<string, unknown>, TOutputData extends Record<string, unknown> = TInputData>(adapter: Adapter, ctx: HookContext, props: UpdateWithHooksProps<TInputData, TOutputData>): Promise<TOutputData[] | null>;
|
|
55
|
+
//# sourceMappingURL=update-many-hooks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update-many-hooks.d.ts","sourceRoot":"","sources":["../../../src/db/hooks/update-many-hooks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAEnD,OAAO,KAAK,EAEX,WAAW,EACX,oBAAoB,EACpB,MAAM,SAAS,CAAC;AA4DjB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AACH,wBAAsB,mBAAmB,CACxC,UAAU,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACpE,WAAW,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,UAAU,EAExD,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,WAAW,EAChB,KAAK,EAAE,oBAAoB,CAAC,UAAU,EAAE,WAAW,CAAC,GAClD,OAAO,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,CAmD/B"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import type { GenericEndpointContext } from '../../types';
|
|
2
|
+
import type { EntityName } from '../core/types';
|
|
3
|
+
import type { DatabaseHook, HookOperation, HookPhase } from './types';
|
|
4
|
+
/**
|
|
5
|
+
* Process hooks for a given phase and operation.
|
|
6
|
+
*
|
|
7
|
+
* @typeParam TEntityData - Type of the entity data being processed
|
|
8
|
+
*
|
|
9
|
+
* @param data - The data to process through hooks
|
|
10
|
+
* @param model - The entity type/model name
|
|
11
|
+
* @param operation - The operation being performed (create/update)
|
|
12
|
+
* @param phase - The hook execution phase (before/after)
|
|
13
|
+
* @param hooks - Array of hook sets to process
|
|
14
|
+
* @param context - Optional request context
|
|
15
|
+
* @returns The processed data, potentially transformed, or null if aborted
|
|
16
|
+
*
|
|
17
|
+
* @remarks
|
|
18
|
+
* This core utility function handles the execution of hooks for various
|
|
19
|
+
* database operations. It traverses all registered hooks for the specified
|
|
20
|
+
* entity, operation, and phase, applying transformations or aborting as needed.
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
* ```typescript
|
|
24
|
+
* const processedData = await processHooks(
|
|
25
|
+
* { name: 'Alice' },
|
|
26
|
+
* 'subject',
|
|
27
|
+
* 'create',
|
|
28
|
+
* 'before',
|
|
29
|
+
* registeredHooks
|
|
30
|
+
* );
|
|
31
|
+
* ```
|
|
32
|
+
*/
|
|
33
|
+
export declare function processHooks<TEntityName extends EntityName, TEntityData extends Record<string, unknown>>(data: TEntityData, model: TEntityName, operation: HookOperation, phase: HookPhase, hooks: DatabaseHook[], context?: GenericEndpointContext): Promise<TEntityData | null>;
|
|
34
|
+
/**
|
|
35
|
+
* Process hooks for multiple records.
|
|
36
|
+
*
|
|
37
|
+
* @typeParam TEntityName - Type of the entity name
|
|
38
|
+
* @typeParam TEntityData - Type of the entity data
|
|
39
|
+
*
|
|
40
|
+
* @param records - Array of records to process
|
|
41
|
+
* @param model - The entity type/model name
|
|
42
|
+
* @param hooks - Array of hook sets to process
|
|
43
|
+
* @param context - Optional request context
|
|
44
|
+
* @returns Promise that resolves when all hooks have been processed
|
|
45
|
+
*
|
|
46
|
+
* @remarks
|
|
47
|
+
* This utility function handles processing after-update hooks for a batch
|
|
48
|
+
* of records, ensuring each record goes through the appropriate hooks.
|
|
49
|
+
*
|
|
50
|
+
* @example
|
|
51
|
+
* ```typescript
|
|
52
|
+
* // Process 'after update' hooks for multiple subjects
|
|
53
|
+
* await processAfterHooksForMany(
|
|
54
|
+
* updatedSubjects,
|
|
55
|
+
* 'subject',
|
|
56
|
+
* registeredHooks,
|
|
57
|
+
* { batchId: 'sub_x1pftyoufsm7xgo1kv' }
|
|
58
|
+
* );
|
|
59
|
+
* ```
|
|
60
|
+
*/
|
|
61
|
+
export declare function processAfterHooksForMany<TEntityName extends EntityName, TEntityData extends Record<string, unknown>>(records: TEntityData[], model: TEntityName, hooks: DatabaseHook[], context?: GenericEndpointContext): Promise<void>;
|
|
62
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/db/hooks/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AACtD,OAAO,KAAK,EAAE,UAAU,EAAiB,MAAM,eAAe,CAAC;AAC/D,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEtE;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAsB,YAAY,CACjC,WAAW,SAAS,UAAU,EAC9B,WAAW,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAE3C,IAAI,EAAE,WAAW,EACjB,KAAK,EAAE,WAAW,EAClB,SAAS,EAAE,aAAa,EACxB,KAAK,EAAE,SAAS,EAChB,KAAK,EAAE,YAAY,EAAE,EACrB,OAAO,CAAC,EAAE,sBAAsB,GAC9B,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAuD7B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAsB,wBAAwB,CAC7C,WAAW,SAAS,UAAU,EAC9B,WAAW,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAE3C,OAAO,EAAE,WAAW,EAAE,EACtB,KAAK,EAAE,WAAW,EAClB,KAAK,EAAE,YAAY,EAAE,EACrB,OAAO,CAAC,EAAE,sBAAsB,GAC9B,OAAO,CAAC,IAAI,CAAC,CAef"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { Adapter } from '../adapters/types';
|
|
2
|
+
import type { CreateWithHooksProps, HookContext, UpdateWithHooksProps } from './types';
|
|
3
|
+
/**
|
|
4
|
+
* Creates a set of functions that apply hooks before and after database operations.
|
|
5
|
+
*
|
|
6
|
+
* @param adapter - The database adapter to use for operations
|
|
7
|
+
* @param ctx - Context object containing options and hooks
|
|
8
|
+
* @returns Object with hook-enabled database operation functions
|
|
9
|
+
*
|
|
10
|
+
* @remarks
|
|
11
|
+
* This factory function generates hook-enabled versions of common database operations
|
|
12
|
+
* (create, update, updateMany), allowing for consistent hook processing across
|
|
13
|
+
* the application.
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```typescript
|
|
17
|
+
* const { createWithHooks } = getWithHooks(adapter, {
|
|
18
|
+
* options: c15tOptions,
|
|
19
|
+
* hooks: c15tOptions.databaseHooks || []
|
|
20
|
+
* });
|
|
21
|
+
*
|
|
22
|
+
* const subject = await createWithHooks({
|
|
23
|
+
* data: { name: 'Alice' },
|
|
24
|
+
* model: 'subject'
|
|
25
|
+
* });
|
|
26
|
+
* ```
|
|
27
|
+
*/
|
|
28
|
+
export declare function getWithHooks(adapter: Adapter, ctx: HookContext): {
|
|
29
|
+
createWithHooks: <TInputData extends Record<string, unknown>, TOutputData extends Record<string, unknown> = TInputData>({ data, model, customFn, context, }: CreateWithHooksProps<TInputData>) => Promise<TOutputData | null>;
|
|
30
|
+
updateWithHooks: <TInputData extends Record<string, unknown>, TOutputData extends Record<string, unknown> = TInputData>(props: UpdateWithHooksProps<TInputData, TOutputData>) => Promise<TOutputData | null>;
|
|
31
|
+
updateManyWithHooks: <TInputData extends Record<string, unknown>, TOutputData extends Record<string, unknown> = TInputData>(props: UpdateWithHooksProps<TInputData, TOutputData>) => Promise<TOutputData[] | null>;
|
|
32
|
+
};
|
|
33
|
+
//# sourceMappingURL=with-hooks-factory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"with-hooks-factory.d.ts","sourceRoot":"","sources":["../../../src/db/hooks/with-hooks-factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAEnD,OAAO,KAAK,EACX,oBAAoB,EACpB,WAAW,EACX,oBAAoB,EACpB,MAAM,SAAS,CAAC;AAIjB;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,WAAW;sBAG5D,UAAU,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC1C,WAAW,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,oDAMzC,oBAAoB,CAAC,UAAU,CAAC;sBASlC,UAAU,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC1C,WAAW,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,sBAEpC,oBAAoB,CAAC,UAAU,EAAE,WAAW,CAAC;0BAIpD,UAAU,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC1C,WAAW,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,sBAEpC,oBAAoB,CAAC,UAAU,EAAE,WAAW,CAAC;EAGtD"}
|