@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.
Files changed (521) hide show
  1. package/.turbo/turbo-build.log +11 -0
  2. package/.turbo/turbo-check-types.log +5 -0
  3. package/.turbo/turbo-fmt.log +7 -0
  4. package/.turbo/turbo-lint.log +6 -0
  5. package/.turbo/turbo-test.log +26 -0
  6. package/README-next.md +223 -0
  7. package/README.md +164 -0
  8. package/dist/api/call.d.ts +176 -0
  9. package/dist/api/call.d.ts.map +1 -0
  10. package/dist/api/index.d.ts +935 -0
  11. package/dist/api/index.d.ts.map +1 -0
  12. package/dist/api/middlewares/index.d.ts +39 -0
  13. package/dist/api/middlewares/index.d.ts.map +1 -0
  14. package/dist/api/middlewares/origin-check.d.ts +82 -0
  15. package/dist/api/middlewares/origin-check.d.ts.map +1 -0
  16. package/dist/api/middlewares/validate-context.d.ts +38 -0
  17. package/dist/api/middlewares/validate-context.d.ts.map +1 -0
  18. package/dist/api/routes/__tests__/consent.test.d.ts +2 -0
  19. package/dist/api/routes/__tests__/consent.test.d.ts.map +1 -0
  20. package/dist/api/routes/__tests__/status.test.d.ts +2 -0
  21. package/dist/api/routes/__tests__/status.test.d.ts.map +1 -0
  22. package/dist/api/routes/error.d.ts +57 -0
  23. package/dist/api/routes/error.d.ts.map +1 -0
  24. package/dist/api/routes/generate-consent-receipt.d.ts +130 -0
  25. package/dist/api/routes/generate-consent-receipt.d.ts.map +1 -0
  26. package/dist/api/routes/get-consent-history.d.ts +133 -0
  27. package/dist/api/routes/get-consent-history.d.ts.map +1 -0
  28. package/dist/api/routes/get-consent-policy.d.ts +164 -0
  29. package/dist/api/routes/get-consent-policy.d.ts.map +1 -0
  30. package/dist/api/routes/get-consent.d.ts +148 -0
  31. package/dist/api/routes/get-consent.d.ts.map +1 -0
  32. package/dist/api/routes/index.d.ts +339 -0
  33. package/dist/api/routes/index.d.ts.map +1 -0
  34. package/dist/api/routes/ok.d.ts +87 -0
  35. package/dist/api/routes/ok.d.ts.map +1 -0
  36. package/dist/api/routes/set-consent.d.ts +245 -0
  37. package/dist/api/routes/set-consent.d.ts.map +1 -0
  38. package/dist/api/routes/show-consent-banner.d.ts +127 -0
  39. package/dist/api/routes/show-consent-banner.d.ts.map +1 -0
  40. package/dist/api/routes/status.d.ts +61 -0
  41. package/dist/api/routes/status.d.ts.map +1 -0
  42. package/dist/api/routes/verify-consent.d.ts +179 -0
  43. package/dist/api/routes/verify-consent.d.ts.map +1 -0
  44. package/dist/api/routes/withdraw-consent.d.ts +194 -0
  45. package/dist/api/routes/withdraw-consent.d.ts.map +1 -0
  46. package/dist/api/to-endpoints.d.ts +35 -0
  47. package/dist/api/to-endpoints.d.ts.map +1 -0
  48. package/dist/client/index.cjs +139 -0
  49. package/dist/client/index.d.ts +203 -0
  50. package/dist/client/index.d.ts.map +1 -0
  51. package/dist/client/index.js +106 -0
  52. package/dist/client/types.d.ts +431 -0
  53. package/dist/client/types.d.ts.map +1 -0
  54. package/dist/core.d.ts +124 -0
  55. package/dist/core.d.ts.map +1 -0
  56. package/dist/core.test.d.ts +2 -0
  57. package/dist/core.test.d.ts.map +1 -0
  58. package/dist/db/adapters/drizzle-adapter/drizzle-adapter.d.ts +122 -0
  59. package/dist/db/adapters/drizzle-adapter/drizzle-adapter.d.ts.map +1 -0
  60. package/dist/db/adapters/drizzle-adapter/index.d.ts +2 -0
  61. package/dist/db/adapters/drizzle-adapter/index.d.ts.map +1 -0
  62. package/dist/db/adapters/drizzle.cjs +1531 -0
  63. package/dist/db/adapters/drizzle.js +1489 -0
  64. package/dist/db/adapters/kysely-adapter/dialect.d.ts +72 -0
  65. package/dist/db/adapters/kysely-adapter/dialect.d.ts.map +1 -0
  66. package/dist/db/adapters/kysely-adapter/index.d.ts +4 -0
  67. package/dist/db/adapters/kysely-adapter/index.d.ts.map +1 -0
  68. package/dist/db/adapters/kysely-adapter/kysely-adapter.d.ts +98 -0
  69. package/dist/db/adapters/kysely-adapter/kysely-adapter.d.ts.map +1 -0
  70. package/dist/db/adapters/kysely-adapter/types.d.ts +281 -0
  71. package/dist/db/adapters/kysely-adapter/types.d.ts.map +1 -0
  72. package/dist/db/adapters/kysely.cjs +1551 -0
  73. package/dist/db/adapters/kysely.js +1508 -0
  74. package/dist/db/adapters/memory-adapter/index.d.ts +2 -0
  75. package/dist/db/adapters/memory-adapter/index.d.ts.map +1 -0
  76. package/dist/db/adapters/memory-adapter/memory-adapter.d.ts +56 -0
  77. package/dist/db/adapters/memory-adapter/memory-adapter.d.ts.map +1 -0
  78. package/dist/db/adapters/memory.cjs +1391 -0
  79. package/dist/db/adapters/memory.js +1349 -0
  80. package/dist/db/adapters/prisma-adapter/index.d.ts +2 -0
  81. package/dist/db/adapters/prisma-adapter/index.d.ts.map +1 -0
  82. package/dist/db/adapters/prisma-adapter/prisma-adapter.d.ts +143 -0
  83. package/dist/db/adapters/prisma-adapter/prisma-adapter.d.ts.map +1 -0
  84. package/dist/db/adapters/prisma.cjs +1503 -0
  85. package/dist/db/adapters/prisma.js +1461 -0
  86. package/dist/db/adapters/types.d.ts +154 -0
  87. package/dist/db/adapters/types.d.ts.map +1 -0
  88. package/dist/db/adapters/utils.d.ts +36 -0
  89. package/dist/db/adapters/utils.d.ts.map +1 -0
  90. package/dist/db/core/fields/field-factory.d.ts +383 -0
  91. package/dist/db/core/fields/field-factory.d.ts.map +1 -0
  92. package/dist/db/core/fields/field-inference.d.ts +218 -0
  93. package/dist/db/core/fields/field-inference.d.ts.map +1 -0
  94. package/dist/db/core/fields/field-options-integration.d.ts +90 -0
  95. package/dist/db/core/fields/field-options-integration.d.ts.map +1 -0
  96. package/dist/db/core/fields/field-types.d.ts +182 -0
  97. package/dist/db/core/fields/field-types.d.ts.map +1 -0
  98. package/dist/db/core/fields/id-generator.d.ts +19 -0
  99. package/dist/db/core/fields/id-generator.d.ts.map +1 -0
  100. package/dist/db/core/fields/index.d.ts +8 -0
  101. package/dist/db/core/fields/index.d.ts.map +1 -0
  102. package/dist/db/core/fields/superjson-utils.d.ts +34 -0
  103. package/dist/db/core/fields/superjson-utils.d.ts.map +1 -0
  104. package/dist/db/core/fields/zod-fields.d.ts +1011 -0
  105. package/dist/db/core/fields/zod-fields.d.ts.map +1 -0
  106. package/dist/db/core/get-schema.d.ts +36 -0
  107. package/dist/db/core/get-schema.d.ts.map +1 -0
  108. package/dist/db/core/types.d.ts +41 -0
  109. package/dist/db/core/types.d.ts.map +1 -0
  110. package/dist/db/create-registry.d.ts +760 -0
  111. package/dist/db/create-registry.d.ts.map +1 -0
  112. package/dist/db/hooks/create-hooks.d.ts +32 -0
  113. package/dist/db/hooks/create-hooks.d.ts.map +1 -0
  114. package/dist/db/hooks/index.d.ts +40 -0
  115. package/dist/db/hooks/index.d.ts.map +1 -0
  116. package/dist/db/hooks/types.d.ts +133 -0
  117. package/dist/db/hooks/types.d.ts.map +1 -0
  118. package/dist/db/hooks/update-hooks.d.ts +33 -0
  119. package/dist/db/hooks/update-hooks.d.ts.map +1 -0
  120. package/dist/db/hooks/update-many-hooks.d.ts +55 -0
  121. package/dist/db/hooks/update-many-hooks.d.ts.map +1 -0
  122. package/dist/db/hooks/utils.d.ts +62 -0
  123. package/dist/db/hooks/utils.d.ts.map +1 -0
  124. package/dist/db/hooks/with-hooks-factory.d.ts +33 -0
  125. package/dist/db/hooks/with-hooks-factory.d.ts.map +1 -0
  126. package/dist/db/index.cjs +2458 -0
  127. package/dist/db/index.d.ts +11 -0
  128. package/dist/db/index.d.ts.map +1 -0
  129. package/dist/db/index.js +2404 -0
  130. package/dist/db/migration/get-migration.d.ts +32 -0
  131. package/dist/db/migration/get-migration.d.ts.map +1 -0
  132. package/dist/db/migration/get-schema/get-schema.d.ts +27 -0
  133. package/dist/db/migration/get-schema/get-schema.d.ts.map +1 -0
  134. package/dist/db/migration/get-schema/index.d.ts +21 -0
  135. package/dist/db/migration/get-schema/index.d.ts.map +1 -0
  136. package/dist/db/migration/get-schema/process-fields.d.ts +16 -0
  137. package/dist/db/migration/get-schema/process-fields.d.ts.map +1 -0
  138. package/dist/db/migration/get-schema/process-tables.d.ts +13 -0
  139. package/dist/db/migration/get-schema/process-tables.d.ts.map +1 -0
  140. package/dist/db/migration/get-schema/types.d.ts +17 -0
  141. package/dist/db/migration/get-schema/types.d.ts.map +1 -0
  142. package/dist/db/migration/index.cjs +1613 -0
  143. package/dist/db/migration/index.d.ts +14 -0
  144. package/dist/db/migration/index.d.ts.map +1 -0
  145. package/dist/db/migration/index.js +1571 -0
  146. package/dist/db/migration/migration-builders.d.ts +28 -0
  147. package/dist/db/migration/migration-builders.d.ts.map +1 -0
  148. package/dist/db/migration/migration-execution.d.ts +12 -0
  149. package/dist/db/migration/migration-execution.d.ts.map +1 -0
  150. package/dist/db/migration/schema-comparison.d.ts +54 -0
  151. package/dist/db/migration/schema-comparison.d.ts.map +1 -0
  152. package/dist/db/migration/type-mapping.d.ts +86 -0
  153. package/dist/db/migration/type-mapping.d.ts.map +1 -0
  154. package/dist/db/migration/types.d.ts +37 -0
  155. package/dist/db/migration/types.d.ts.map +1 -0
  156. package/dist/db/schema/audit-log/index.d.ts +4 -0
  157. package/dist/db/schema/audit-log/index.d.ts.map +1 -0
  158. package/dist/db/schema/audit-log/registry.d.ts +128 -0
  159. package/dist/db/schema/audit-log/registry.d.ts.map +1 -0
  160. package/dist/db/schema/audit-log/schema.d.ts +67 -0
  161. package/dist/db/schema/audit-log/schema.d.ts.map +1 -0
  162. package/dist/db/schema/audit-log/table.d.ts +175 -0
  163. package/dist/db/schema/audit-log/table.d.ts.map +1 -0
  164. package/dist/db/schema/audit-log/types.d.ts +29 -0
  165. package/dist/db/schema/audit-log/types.d.ts.map +1 -0
  166. package/dist/db/schema/consent/index.d.ts +4 -0
  167. package/dist/db/schema/consent/index.d.ts.map +1 -0
  168. package/dist/db/schema/consent/registry.d.ts +318 -0
  169. package/dist/db/schema/consent/registry.d.ts.map +1 -0
  170. package/dist/db/schema/consent/schema.d.ts +135 -0
  171. package/dist/db/schema/consent/schema.d.ts.map +1 -0
  172. package/dist/db/schema/consent/table.d.ts +245 -0
  173. package/dist/db/schema/consent/table.d.ts.map +1 -0
  174. package/dist/db/schema/consent/types.d.ts +37 -0
  175. package/dist/db/schema/consent/types.d.ts.map +1 -0
  176. package/dist/db/schema/consent-geo-location/index.d.ts +4 -0
  177. package/dist/db/schema/consent-geo-location/index.d.ts.map +1 -0
  178. package/dist/db/schema/consent-geo-location/registry.d.ts +96 -0
  179. package/dist/db/schema/consent-geo-location/registry.d.ts.map +1 -0
  180. package/dist/db/schema/consent-geo-location/schema.d.ts +71 -0
  181. package/dist/db/schema/consent-geo-location/schema.d.ts.map +1 -0
  182. package/dist/db/schema/consent-geo-location/table.d.ts +167 -0
  183. package/dist/db/schema/consent-geo-location/table.d.ts.map +1 -0
  184. package/dist/db/schema/consent-geo-location/types.d.ts +21 -0
  185. package/dist/db/schema/consent-geo-location/types.d.ts.map +1 -0
  186. package/dist/db/schema/consent-policy/index.d.ts +4 -0
  187. package/dist/db/schema/consent-policy/index.d.ts.map +1 -0
  188. package/dist/db/schema/consent-policy/registry.d.ts +186 -0
  189. package/dist/db/schema/consent-policy/registry.d.ts.map +1 -0
  190. package/dist/db/schema/consent-policy/schema.d.ts +68 -0
  191. package/dist/db/schema/consent-policy/schema.d.ts.map +1 -0
  192. package/dist/db/schema/consent-policy/table.d.ts +147 -0
  193. package/dist/db/schema/consent-policy/table.d.ts.map +1 -0
  194. package/dist/db/schema/consent-policy/types.d.ts +28 -0
  195. package/dist/db/schema/consent-policy/types.d.ts.map +1 -0
  196. package/dist/db/schema/consent-purpose/index.d.ts +4 -0
  197. package/dist/db/schema/consent-purpose/index.d.ts.map +1 -0
  198. package/dist/db/schema/consent-purpose/registry.d.ts +136 -0
  199. package/dist/db/schema/consent-purpose/registry.d.ts.map +1 -0
  200. package/dist/db/schema/consent-purpose/schema.d.ts +79 -0
  201. package/dist/db/schema/consent-purpose/schema.d.ts.map +1 -0
  202. package/dist/db/schema/consent-purpose/table.d.ts +161 -0
  203. package/dist/db/schema/consent-purpose/table.d.ts.map +1 -0
  204. package/dist/db/schema/consent-purpose/types.d.ts +16 -0
  205. package/dist/db/schema/consent-purpose/types.d.ts.map +1 -0
  206. package/dist/db/schema/consent-purpose-junction/index.d.ts +4 -0
  207. package/dist/db/schema/consent-purpose-junction/index.d.ts.map +1 -0
  208. package/dist/db/schema/consent-purpose-junction/registry.d.ts +109 -0
  209. package/dist/db/schema/consent-purpose-junction/registry.d.ts.map +1 -0
  210. package/dist/db/schema/consent-purpose-junction/schema.d.ts +57 -0
  211. package/dist/db/schema/consent-purpose-junction/schema.d.ts.map +1 -0
  212. package/dist/db/schema/consent-purpose-junction/table.d.ts +138 -0
  213. package/dist/db/schema/consent-purpose-junction/table.d.ts.map +1 -0
  214. package/dist/db/schema/consent-purpose-junction/types.d.ts +14 -0
  215. package/dist/db/schema/consent-purpose-junction/types.d.ts.map +1 -0
  216. package/dist/db/schema/consent-record/index.d.ts +4 -0
  217. package/dist/db/schema/consent-record/index.d.ts.map +1 -0
  218. package/dist/db/schema/consent-record/registry.d.ts +119 -0
  219. package/dist/db/schema/consent-record/registry.d.ts.map +1 -0
  220. package/dist/db/schema/consent-record/schema.d.ts +57 -0
  221. package/dist/db/schema/consent-record/schema.d.ts.map +1 -0
  222. package/dist/db/schema/consent-record/table.d.ts +123 -0
  223. package/dist/db/schema/consent-record/table.d.ts.map +1 -0
  224. package/dist/db/schema/consent-record/types.d.ts +21 -0
  225. package/dist/db/schema/consent-record/types.d.ts.map +1 -0
  226. package/dist/db/schema/consent-withdrawal/index.d.ts +4 -0
  227. package/dist/db/schema/consent-withdrawal/index.d.ts.map +1 -0
  228. package/dist/db/schema/consent-withdrawal/registry.d.ts +134 -0
  229. package/dist/db/schema/consent-withdrawal/registry.d.ts.map +1 -0
  230. package/dist/db/schema/consent-withdrawal/schema.d.ts +67 -0
  231. package/dist/db/schema/consent-withdrawal/schema.d.ts.map +1 -0
  232. package/dist/db/schema/consent-withdrawal/table.d.ts +170 -0
  233. package/dist/db/schema/consent-withdrawal/table.d.ts.map +1 -0
  234. package/dist/db/schema/consent-withdrawal/types.d.ts +28 -0
  235. package/dist/db/schema/consent-withdrawal/types.d.ts.map +1 -0
  236. package/dist/db/schema/definition.d.ts +1100 -0
  237. package/dist/db/schema/definition.d.ts.map +1 -0
  238. package/dist/db/schema/domain/index.d.ts +4 -0
  239. package/dist/db/schema/domain/index.d.ts.map +1 -0
  240. package/dist/db/schema/domain/registry.d.ts +169 -0
  241. package/dist/db/schema/domain/registry.d.ts.map +1 -0
  242. package/dist/db/schema/domain/schema.d.ts +60 -0
  243. package/dist/db/schema/domain/schema.d.ts.map +1 -0
  244. package/dist/db/schema/domain/table.d.ts +140 -0
  245. package/dist/db/schema/domain/table.d.ts.map +1 -0
  246. package/dist/db/schema/domain/types.d.ts +27 -0
  247. package/dist/db/schema/domain/types.d.ts.map +1 -0
  248. package/dist/db/schema/geo-location/index.d.ts +4 -0
  249. package/dist/db/schema/geo-location/index.d.ts.map +1 -0
  250. package/dist/db/schema/geo-location/registry.d.ts +114 -0
  251. package/dist/db/schema/geo-location/registry.d.ts.map +1 -0
  252. package/dist/db/schema/geo-location/schema.d.ts +58 -0
  253. package/dist/db/schema/geo-location/schema.d.ts.map +1 -0
  254. package/dist/db/schema/geo-location/table.d.ts +132 -0
  255. package/dist/db/schema/geo-location/table.d.ts.map +1 -0
  256. package/dist/db/schema/geo-location/types.d.ts +17 -0
  257. package/dist/db/schema/geo-location/types.d.ts.map +1 -0
  258. package/dist/db/schema/index.d.ts +85 -0
  259. package/dist/db/schema/index.d.ts.map +1 -0
  260. package/dist/db/schema/parser.d.ts +183 -0
  261. package/dist/db/schema/parser.d.ts.map +1 -0
  262. package/dist/db/schema/schemas.d.ts +383 -0
  263. package/dist/db/schema/schemas.d.ts.map +1 -0
  264. package/dist/db/schema/subject/index.d.ts +4 -0
  265. package/dist/db/schema/subject/index.d.ts.map +1 -0
  266. package/dist/db/schema/subject/registry.d.ts +141 -0
  267. package/dist/db/schema/subject/registry.d.ts.map +1 -0
  268. package/dist/db/schema/subject/schema.d.ts +56 -0
  269. package/dist/db/schema/subject/schema.d.ts.map +1 -0
  270. package/dist/db/schema/subject/table.d.ts +136 -0
  271. package/dist/db/schema/subject/table.d.ts.map +1 -0
  272. package/dist/db/schema/subject/types.d.ts +22 -0
  273. package/dist/db/schema/subject/types.d.ts.map +1 -0
  274. package/dist/db/schema/types.d.ts +136 -0
  275. package/dist/db/schema/types.d.ts.map +1 -0
  276. package/dist/db/utils/adapter-factory.d.ts +21 -0
  277. package/dist/db/utils/adapter-factory.d.ts.map +1 -0
  278. package/dist/db/utils/index.d.ts +10 -0
  279. package/dist/db/utils/index.d.ts.map +1 -0
  280. package/dist/db/utils.d.ts +4 -0
  281. package/dist/db/utils.d.ts.map +1 -0
  282. package/dist/error/codes.cjs +68 -0
  283. package/dist/error/codes.d.ts +175 -0
  284. package/dist/error/codes.d.ts.map +1 -0
  285. package/dist/error/codes.js +35 -0
  286. package/dist/error/error.d.ts +79 -0
  287. package/dist/error/error.d.ts.map +1 -0
  288. package/dist/error/index.cjs +172 -0
  289. package/dist/error/index.d.ts +9 -0
  290. package/dist/error/index.d.ts.map +1 -0
  291. package/dist/error/index.js +129 -0
  292. package/dist/error/logging.d.ts +25 -0
  293. package/dist/error/logging.d.ts.map +1 -0
  294. package/dist/error/pipeline.d.ts +19 -0
  295. package/dist/error/pipeline.d.ts.map +1 -0
  296. package/dist/error/recovery.d.ts +22 -0
  297. package/dist/error/recovery.d.ts.map +1 -0
  298. package/dist/error/results.d.ts +56 -0
  299. package/dist/error/results.d.ts.map +1 -0
  300. package/dist/index.cjs +4777 -0
  301. package/dist/index.d.ts +46 -0
  302. package/dist/index.d.ts.map +1 -0
  303. package/dist/index.js +4708 -0
  304. package/dist/init.d.ts +52 -0
  305. package/dist/init.d.ts.map +1 -0
  306. package/dist/init.test.d.ts +2 -0
  307. package/dist/init.test.d.ts.map +1 -0
  308. package/dist/integrations/index.cjs +281 -0
  309. package/dist/integrations/index.d.ts +7 -0
  310. package/dist/integrations/index.d.ts.map +1 -0
  311. package/dist/integrations/index.js +248 -0
  312. package/dist/integrations/next.cjs +131 -0
  313. package/dist/integrations/next.d.ts +29 -0
  314. package/dist/integrations/next.d.ts.map +1 -0
  315. package/dist/integrations/next.js +99 -0
  316. package/dist/integrations/react.cjs +182 -0
  317. package/dist/integrations/react.d.ts +257 -0
  318. package/dist/integrations/react.d.ts.map +1 -0
  319. package/dist/integrations/react.js +150 -0
  320. package/dist/plugins/geo/index.d.ts +2 -0
  321. package/dist/plugins/geo/index.d.ts.map +1 -0
  322. package/dist/test/utils.d.ts +65 -0
  323. package/dist/test/utils.d.ts.map +1 -0
  324. package/dist/types/api.d.ts +89 -0
  325. package/dist/types/api.d.ts.map +1 -0
  326. package/dist/types/context.d.ts +205 -0
  327. package/dist/types/context.d.ts.map +1 -0
  328. package/dist/types/helper.d.ts +78 -0
  329. package/dist/types/helper.d.ts.map +1 -0
  330. package/dist/types/index.cjs +19 -0
  331. package/dist/types/index.d.ts +6 -0
  332. package/dist/types/index.d.ts.map +1 -0
  333. package/dist/types/index.js +0 -0
  334. package/dist/types/options.d.ts +172 -0
  335. package/dist/types/options.d.ts.map +1 -0
  336. package/dist/types/plugins.d.ts +442 -0
  337. package/dist/types/plugins.d.ts.map +1 -0
  338. package/dist/utils/env.d.ts +77 -0
  339. package/dist/utils/env.d.ts.map +1 -0
  340. package/dist/utils/hide-metadata.d.ts +22 -0
  341. package/dist/utils/hide-metadata.d.ts.map +1 -0
  342. package/dist/utils/index.cjs +268 -0
  343. package/dist/utils/index.d.ts +18 -0
  344. package/dist/utils/index.d.ts.map +1 -0
  345. package/dist/utils/index.js +210 -0
  346. package/dist/utils/ip.d.ts +10 -0
  347. package/dist/utils/ip.d.ts.map +1 -0
  348. package/dist/utils/json.d.ts +14 -0
  349. package/dist/utils/json.d.ts.map +1 -0
  350. package/dist/utils/logger.d.ts +108 -0
  351. package/dist/utils/logger.d.ts.map +1 -0
  352. package/dist/utils/url.d.ts +87 -0
  353. package/dist/utils/url.d.ts.map +1 -0
  354. package/dist/utils/wildcard.d.ts +46 -0
  355. package/dist/utils/wildcard.d.ts.map +1 -0
  356. package/knip.json +37 -0
  357. package/package.json +146 -0
  358. package/rslib.config.ts +104 -0
  359. package/src/api/call.ts +177 -0
  360. package/src/api/index.ts +303 -0
  361. package/src/api/middlewares/index.ts +38 -0
  362. package/src/api/middlewares/origin-check.ts +260 -0
  363. package/src/api/middlewares/validate-context.ts +175 -0
  364. package/src/api/routes/__tests__/consent.test.ts +270 -0
  365. package/src/api/routes/__tests__/status.test.ts +36 -0
  366. package/src/api/routes/error.ts +130 -0
  367. package/src/api/routes/generate-consent-receipt.ts +244 -0
  368. package/src/api/routes/get-consent-history.ts +128 -0
  369. package/src/api/routes/get-consent-policy.ts +327 -0
  370. package/src/api/routes/get-consent.ts +230 -0
  371. package/src/api/routes/index.ts +12 -0
  372. package/src/api/routes/ok.ts +45 -0
  373. package/src/api/routes/set-consent.ts +328 -0
  374. package/src/api/routes/show-consent-banner.ts +149 -0
  375. package/src/api/routes/status.ts +62 -0
  376. package/src/api/routes/verify-consent.ts +272 -0
  377. package/src/api/routes/withdraw-consent.ts +293 -0
  378. package/src/api/to-endpoints.ts +371 -0
  379. package/src/client/index.ts +471 -0
  380. package/src/client/types.ts +458 -0
  381. package/src/core.test.ts +303 -0
  382. package/src/core.ts +267 -0
  383. package/src/db/adapters/drizzle-adapter/drizzle-adapter.ts +711 -0
  384. package/src/db/adapters/drizzle-adapter/index.ts +1 -0
  385. package/src/db/adapters/kysely-adapter/dialect.ts +192 -0
  386. package/src/db/adapters/kysely-adapter/index.ts +3 -0
  387. package/src/db/adapters/kysely-adapter/kysely-adapter.ts +1168 -0
  388. package/src/db/adapters/kysely-adapter/types.ts +307 -0
  389. package/src/db/adapters/memory-adapter/index.ts +1 -0
  390. package/src/db/adapters/memory-adapter/memory-adapter.ts +648 -0
  391. package/src/db/adapters/prisma-adapter/index.ts +1 -0
  392. package/src/db/adapters/prisma-adapter/prisma-adapter.ts +586 -0
  393. package/src/db/adapters/types.ts +203 -0
  394. package/src/db/adapters/utils.ts +51 -0
  395. package/src/db/core/fields/field-factory.ts +804 -0
  396. package/src/db/core/fields/field-inference.ts +298 -0
  397. package/src/db/core/fields/field-options-integration.ts +135 -0
  398. package/src/db/core/fields/field-types.ts +233 -0
  399. package/src/db/core/fields/id-generator.ts +57 -0
  400. package/src/db/core/fields/index.ts +56 -0
  401. package/src/db/core/fields/superjson-utils.ts +155 -0
  402. package/src/db/core/fields/zod-fields.ts +269 -0
  403. package/src/db/core/get-schema.ts +102 -0
  404. package/src/db/core/types.ts +52 -0
  405. package/src/db/create-registry.ts +31 -0
  406. package/src/db/hooks/create-hooks.ts +88 -0
  407. package/src/db/hooks/index.ts +39 -0
  408. package/src/db/hooks/types.ts +164 -0
  409. package/src/db/hooks/update-hooks.ts +91 -0
  410. package/src/db/hooks/update-many-hooks.ts +176 -0
  411. package/src/db/hooks/utils.ts +151 -0
  412. package/src/db/hooks/with-hooks-factory.ts +68 -0
  413. package/src/db/index.ts +32 -0
  414. package/src/db/migration/get-migration.ts +89 -0
  415. package/src/db/migration/get-schema/get-schema.ts +44 -0
  416. package/src/db/migration/get-schema/index.ts +20 -0
  417. package/src/db/migration/get-schema/process-fields.ts +66 -0
  418. package/src/db/migration/get-schema/process-tables.ts +68 -0
  419. package/src/db/migration/get-schema/types.ts +18 -0
  420. package/src/db/migration/index.ts +18 -0
  421. package/src/db/migration/migration-builders.ts +170 -0
  422. package/src/db/migration/migration-execution.ts +79 -0
  423. package/src/db/migration/schema-comparison.ts +216 -0
  424. package/src/db/migration/type-mapping.ts +255 -0
  425. package/src/db/migration/types.ts +46 -0
  426. package/src/db/schema/audit-log/index.ts +3 -0
  427. package/src/db/schema/audit-log/registry.ts +228 -0
  428. package/src/db/schema/audit-log/schema.ts +46 -0
  429. package/src/db/schema/audit-log/table.ts +185 -0
  430. package/src/db/schema/audit-log/types.ts +29 -0
  431. package/src/db/schema/consent/index.ts +3 -0
  432. package/src/db/schema/consent/registry.ts +381 -0
  433. package/src/db/schema/consent/schema.ts +65 -0
  434. package/src/db/schema/consent/table.ts +220 -0
  435. package/src/db/schema/consent/types.ts +39 -0
  436. package/src/db/schema/consent-geo-location/index.ts +3 -0
  437. package/src/db/schema/consent-geo-location/registry.ts +124 -0
  438. package/src/db/schema/consent-geo-location/schema.ts +51 -0
  439. package/src/db/schema/consent-geo-location/table.ts +169 -0
  440. package/src/db/schema/consent-geo-location/types.ts +21 -0
  441. package/src/db/schema/consent-policy/index.ts +3 -0
  442. package/src/db/schema/consent-policy/registry.ts +313 -0
  443. package/src/db/schema/consent-policy/schema.ts +47 -0
  444. package/src/db/schema/consent-policy/table.ts +141 -0
  445. package/src/db/schema/consent-policy/types.ts +28 -0
  446. package/src/db/schema/consent-purpose/index.ts +3 -0
  447. package/src/db/schema/consent-purpose/registry.ts +188 -0
  448. package/src/db/schema/consent-purpose/schema.ts +58 -0
  449. package/src/db/schema/consent-purpose/table.ts +154 -0
  450. package/src/db/schema/consent-purpose/types.ts +16 -0
  451. package/src/db/schema/consent-purpose-junction/index.ts +3 -0
  452. package/src/db/schema/consent-purpose-junction/registry.ts +189 -0
  453. package/src/db/schema/consent-purpose-junction/schema.ts +49 -0
  454. package/src/db/schema/consent-purpose-junction/table.ts +142 -0
  455. package/src/db/schema/consent-purpose-junction/types.ts +14 -0
  456. package/src/db/schema/consent-record/index.ts +3 -0
  457. package/src/db/schema/consent-record/registry.ts +209 -0
  458. package/src/db/schema/consent-record/schema.ts +42 -0
  459. package/src/db/schema/consent-record/table.ts +124 -0
  460. package/src/db/schema/consent-record/types.ts +21 -0
  461. package/src/db/schema/consent-withdrawal/index.ts +3 -0
  462. package/src/db/schema/consent-withdrawal/registry.ts +219 -0
  463. package/src/db/schema/consent-withdrawal/schema.ts +48 -0
  464. package/src/db/schema/consent-withdrawal/table.ts +181 -0
  465. package/src/db/schema/consent-withdrawal/types.ts +29 -0
  466. package/src/db/schema/definition.ts +196 -0
  467. package/src/db/schema/domain/index.ts +3 -0
  468. package/src/db/schema/domain/registry.ts +272 -0
  469. package/src/db/schema/domain/schema.ts +43 -0
  470. package/src/db/schema/domain/table.ts +137 -0
  471. package/src/db/schema/domain/types.ts +27 -0
  472. package/src/db/schema/geo-location/index.ts +3 -0
  473. package/src/db/schema/geo-location/registry.ts +159 -0
  474. package/src/db/schema/geo-location/schema.ts +45 -0
  475. package/src/db/schema/geo-location/table.ts +148 -0
  476. package/src/db/schema/geo-location/types.ts +18 -0
  477. package/src/db/schema/index.ts +96 -0
  478. package/src/db/schema/parser.ts +417 -0
  479. package/src/db/schema/schemas.ts +35 -0
  480. package/src/db/schema/subject/index.ts +3 -0
  481. package/src/db/schema/subject/registry.ts +371 -0
  482. package/src/db/schema/subject/schema.ts +41 -0
  483. package/src/db/schema/subject/table.ts +139 -0
  484. package/src/db/schema/subject/types.ts +22 -0
  485. package/src/db/schema/types.ts +154 -0
  486. package/src/db/utils/adapter-factory.ts +64 -0
  487. package/src/db/utils/index.ts +10 -0
  488. package/src/db/utils.ts +42 -0
  489. package/src/docs/ADVANCED_JSON_HANDLING.md +99 -0
  490. package/src/docs/neverthrow.md +171 -0
  491. package/src/error/codes.ts +201 -0
  492. package/src/error/error.ts +145 -0
  493. package/src/error/index.ts +23 -0
  494. package/src/error/logging.ts +52 -0
  495. package/src/error/pipeline.ts +57 -0
  496. package/src/error/recovery.ts +45 -0
  497. package/src/error/results.ts +100 -0
  498. package/src/index.ts +79 -0
  499. package/src/init.test.ts +235 -0
  500. package/src/init.ts +261 -0
  501. package/src/integrations/index.ts +10 -0
  502. package/src/integrations/next.ts +136 -0
  503. package/src/integrations/react.ts +567 -0
  504. package/src/plugins/geo/index.ts +563 -0
  505. package/src/test/utils.ts +244 -0
  506. package/src/types/api.ts +101 -0
  507. package/src/types/context.ts +235 -0
  508. package/src/types/helper.ts +87 -0
  509. package/src/types/index.ts +5 -0
  510. package/src/types/options.ts +189 -0
  511. package/src/types/plugins.ts +538 -0
  512. package/src/utils/env.ts +103 -0
  513. package/src/utils/hide-metadata.ts +21 -0
  514. package/src/utils/index.ts +17 -0
  515. package/src/utils/ip.ts +45 -0
  516. package/src/utils/json.ts +19 -0
  517. package/src/utils/logger.ts +252 -0
  518. package/src/utils/url.ts +194 -0
  519. package/src/utils/wildcard.ts +253 -0
  520. package/tsconfig.json +12 -0
  521. package/vitest.config.ts +14 -0
@@ -0,0 +1,57 @@
1
+ import { z } from 'zod';
2
+ /**
3
+ * Zod schema for validating consent record entities.
4
+ *
5
+ * This defines the structure and validation rules for consent records:
6
+ * - Required fields: subjectId, actionType (given, withdrawn, updated, etc.)
7
+ * - Optional fields: consentId, details
8
+ * - Default current date/time for creation and update timestamps
9
+ *
10
+ * @example
11
+ * ```typescript
12
+ * const recordData = {
13
+ * id: 'rec_w5qufx2a66m7xkn3ty',
14
+ * subjectId: 'sub_x1pftyoufsm7xgo1kv',
15
+ * consentId: 'cns_hadt8w7nngm7xmx2bn',
16
+ * actionType: 'given',
17
+ * details: { ip: '192.168.1.1', userAgent: 'Mozilla/5.0...' }
18
+ * };
19
+ *
20
+ * // Validate and parse the record data
21
+ * const validRecord = consentRecordSchema.parse(recordData);
22
+ * ```
23
+ */
24
+ export declare const consentRecordSchema: z.ZodObject<{
25
+ id: z.ZodString;
26
+ subjectId: z.ZodString;
27
+ consentId: z.ZodOptional<z.ZodString>;
28
+ actionType: z.ZodString;
29
+ details: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
30
+ createdAt: z.ZodDefault<z.ZodDate>;
31
+ updatedAt: z.ZodDefault<z.ZodDate>;
32
+ }, "strip", z.ZodTypeAny, {
33
+ id: string;
34
+ actionType: string;
35
+ subjectId: string;
36
+ createdAt: Date;
37
+ updatedAt: Date;
38
+ details?: Record<string, unknown> | undefined;
39
+ consentId?: string | undefined;
40
+ }, {
41
+ id: string;
42
+ actionType: string;
43
+ subjectId: string;
44
+ createdAt?: Date | undefined;
45
+ details?: Record<string, unknown> | undefined;
46
+ consentId?: string | undefined;
47
+ updatedAt?: Date | undefined;
48
+ }>;
49
+ /**
50
+ * Type definition for Record
51
+ *
52
+ * This type represents the structure of a consent record
53
+ * as defined by the consentRecordSchema. It includes all fields
54
+ * that are part of the consent record entity.
55
+ */
56
+ export type ConsentRecord = z.infer<typeof consentRecordSchema>;
57
+ //# sourceMappingURL=schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../../src/db/schema/consent-record/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;EAQ9B,CAAC;AAEH;;;;;;GAMG;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC"}
@@ -0,0 +1,123 @@
1
+ import type { Field } from '../../core/fields';
2
+ import type { C15TOptions } from '../../../types';
3
+ /**
4
+ * Generates the database table configuration for the consent record entity.
5
+ *
6
+ * This function creates a schema definition that includes all standard consent record fields
7
+ * and any additional fields from plugins or configuration. The resulting schema is used
8
+ * for database migrations, schema validation, and query building.
9
+ *
10
+ * @param options - C15T configuration options that may contain consent record table customizations
11
+ * @param recordFields - Additional fields from plugins to include in the consent record table
12
+ * @returns A complete table schema definition with fields, model name, and metadata
13
+ *
14
+ * @example
15
+ * ```typescript
16
+ * const recordTableSchema = getConsentRecordTable(c15tOptions);
17
+ * // Use the schema for migrations or data access
18
+ * const migrationPlans = generateMigrations(recordTableSchema);
19
+ * ```
20
+ */
21
+ export declare function getConsentRecordTable(options: C15TOptions, recordFields?: Record<string, Field>): {
22
+ /**
23
+ * The name of the consent record table in the database, configurable through options
24
+ */
25
+ entityName: string;
26
+ /**
27
+ * The ID prefix for the consent record table
28
+ * Used to generate unique prefixed IDs for records
29
+ */
30
+ entityPrefix: string;
31
+ /**
32
+ * The schema for the consent record table
33
+ */
34
+ schema: import("zod").ZodObject<{
35
+ id: import("zod").ZodString;
36
+ subjectId: import("zod").ZodString;
37
+ consentId: import("zod").ZodOptional<import("zod").ZodString>;
38
+ actionType: import("zod").ZodString;
39
+ details: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
40
+ createdAt: import("zod").ZodDefault<import("zod").ZodDate>;
41
+ updatedAt: import("zod").ZodDefault<import("zod").ZodDate>;
42
+ }, "strip", import("zod").ZodTypeAny, {
43
+ id: string;
44
+ actionType: string;
45
+ subjectId: string;
46
+ createdAt: Date;
47
+ updatedAt: Date;
48
+ details?: Record<string, unknown> | undefined;
49
+ consentId?: string | undefined;
50
+ }, {
51
+ id: string;
52
+ actionType: string;
53
+ subjectId: string;
54
+ createdAt?: Date | undefined;
55
+ details?: Record<string, unknown> | undefined;
56
+ consentId?: string | undefined;
57
+ updatedAt?: Date | undefined;
58
+ }>;
59
+ /**
60
+ * Field definitions for the consent record table
61
+ */
62
+ fields: {
63
+ /**
64
+ * Reference to the subject associated with this consent record
65
+ */
66
+ subjectId: {
67
+ type: string;
68
+ required: boolean;
69
+ fieldName: string;
70
+ references: {
71
+ model: string;
72
+ field: string;
73
+ };
74
+ };
75
+ /**
76
+ * Optional reference to the specific consent this record is about
77
+ * May be null for general consent actions not related to a specific consent
78
+ */
79
+ consentId: {
80
+ type: string;
81
+ required: boolean;
82
+ fieldName: string;
83
+ references: {
84
+ model: string;
85
+ field: string;
86
+ };
87
+ };
88
+ /**
89
+ * Type of consent action this record represents
90
+ * Common values: 'given', 'withdrawn', 'updated', 'expired', 'requested'
91
+ */
92
+ actionType: {
93
+ type: string;
94
+ required: boolean;
95
+ fieldName: string;
96
+ };
97
+ /**
98
+ * Additional details about the consent action
99
+ * May include IP address, subject agent, reason for withdrawal, etc.
100
+ */
101
+ details: {
102
+ type: string;
103
+ required: boolean;
104
+ fieldName: string;
105
+ };
106
+ /**
107
+ * When the consent record was created
108
+ * Automatically set to current time by default
109
+ */
110
+ createdAt: {
111
+ type: string;
112
+ defaultValue: () => Date;
113
+ required: boolean;
114
+ fieldName: string;
115
+ };
116
+ };
117
+ /**
118
+ * Execution order during migrations (lower numbers run first)
119
+ * Consent record table needs to be created after the subject and consent tables it references
120
+ */
121
+ order: number;
122
+ };
123
+ //# sourceMappingURL=table.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../../../../src/db/schema/consent-record/table.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAG3C;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,qBAAqB,CACpC,OAAO,EAAE,WAAW,EACpB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC;IAQnC;;OAEG;;IAGH;;;OAGG;;IAGH;;OAEG;;;;;;;;;;;;;;;;;;;;;;;;;;IAGH;;OAEG;;QAEF;;WAEG;;;;;;;;;;QAWH;;;WAGG;;;;;;;;;;QAWH;;;WAGG;;;;;;QAOH;;;WAGG;;;;;;QAOH;;;WAGG;;;;;;;;IAeJ;;;OAGG;;EAGJ"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Record Entity Type Definitions
3
+ *
4
+ * This module contains type definitions specific to the record entity.
5
+ */
6
+ import type { BaseEntityConfig } from '../types';
7
+ /**
8
+ * Record entity configuration
9
+ * @default entityName: "record", entityPrefix: "rec"
10
+ */
11
+ export interface ConsentRecordEntityConfig extends BaseEntityConfig {
12
+ fields?: Record<string, string> & {
13
+ id?: string;
14
+ subjectId?: string;
15
+ consentId?: string;
16
+ actionType?: string;
17
+ details?: string;
18
+ createdAt?: string;
19
+ };
20
+ }
21
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/db/schema/consent-record/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAEjD;;;GAGG;AACH,MAAM,WAAW,yBAA0B,SAAQ,gBAAgB;IAClE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG;QACjC,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,SAAS,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;CACF"}
@@ -0,0 +1,4 @@
1
+ export * from './registry';
2
+ export * from './schema';
3
+ export * from './table';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/db/schema/consent-withdrawal/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC"}
@@ -0,0 +1,134 @@
1
+ import type { RegistryContext } from '../../../types';
2
+ import type { GenericEndpointContext } from '../../../types';
3
+ import type { Withdrawal } from './schema';
4
+ /**
5
+ * Creates and returns a set of consent withdrawal adapter methods to interact with the database.
6
+ * These methods provide a consistent interface for creating and querying consentWithdrawal records
7
+ * while applying hooks and enforcing data validation rules.
8
+ *
9
+ * @param adapter - The database adapter used for direct database operations
10
+ * @param ctx - The context object containing the database adapter, hooks, and options
11
+ * @returns An object containing type-safe consent withdrawal operations
12
+ *
13
+ * @example
14
+ * ```typescript
15
+ * const withdrawalAdapter = createConsentWithdrawalAdapter(
16
+ * databaseAdapter,
17
+ * createWithHooks,
18
+ * c15tOptions
19
+ * );
20
+ *
21
+ * // Create a new consentWithdrawal record
22
+ * const consentWithdrawal = await withdrawalAdapter.createConsentWithdrawal({
23
+ * consentId: 'cns_hadt8w7nngm7xmx2bn',
24
+ * subjectId: 'sub_x1pftyoufsm7xgo1kv',
25
+ * withdrawalReason: 'No longer wish to receive marketing emails',
26
+ * withdrawalMethod: 'subject-initiated'
27
+ * });
28
+ * ```
29
+ */
30
+ export declare function consentWithdrawalRegistry({ adapter, ...ctx }: RegistryContext): {
31
+ /**
32
+ * Creates a new consent withdrawal record in the database.
33
+ * Automatically sets creation timestamp and applies any
34
+ * configured hooks during the creation process.
35
+ *
36
+ * @param consentWithdrawal - Withdrawal data to create (without id and timestamp)
37
+ * @param context - Optional endpoint context for hooks
38
+ * @returns The created consentWithdrawal record with all fields populated
39
+ * @throws May throw an error if hooks prevent creation or if database operations fail
40
+ */
41
+ createConsentWithdrawal: (consentWithdrawal: Omit<Withdrawal, "id" | "createdAt"> & Partial<Withdrawal>, context?: GenericEndpointContext) => Promise<{
42
+ id: string;
43
+ subjectId: string;
44
+ createdAt: Date;
45
+ consentId: string;
46
+ updatedAt: Date;
47
+ withdrawalMethod: "subject-initiated" | "automatic-expiry" | "admin" | "api" | "other";
48
+ ipAddress?: string | undefined;
49
+ userAgent?: string | undefined;
50
+ metadata?: Record<string, unknown> | undefined;
51
+ withdrawalReason?: string | undefined;
52
+ }>;
53
+ /**
54
+ * Finds all consentWithdrawal records matching specified filters.
55
+ * Returns consentWithdrawals with processed output fields according to the schema configuration.
56
+ *
57
+ * @param subjectId - Optional subject ID to filter consentWithdrawals
58
+ * @param consentId - Optional consent ID to filter consentWithdrawals
59
+ * @param limit - Optional maximum number of records to return
60
+ * @returns Array of consentWithdrawal records matching the criteria
61
+ */
62
+ findConsentWithdrawals: (subjectId?: string, consentId?: string, limit?: number) => Promise<{
63
+ id: string;
64
+ subjectId: string;
65
+ createdAt: Date;
66
+ consentId: string;
67
+ updatedAt: Date;
68
+ withdrawalMethod: "subject-initiated" | "automatic-expiry" | "admin" | "api" | "other";
69
+ ipAddress?: string | undefined;
70
+ userAgent?: string | undefined;
71
+ metadata?: Record<string, unknown> | undefined;
72
+ withdrawalReason?: string | undefined;
73
+ }[]>;
74
+ /**
75
+ * Finds a consentWithdrawal record by its unique ID.
76
+ * Returns the consentWithdrawal with processed output fields according to the schema configuration.
77
+ *
78
+ * @param withdrawalId - The unique identifier of the consentWithdrawal record
79
+ * @returns The consentWithdrawal object if found, null otherwise
80
+ */
81
+ findConsentWithdrawalById: (withdrawalId: string) => Promise<{
82
+ id: string;
83
+ subjectId: string;
84
+ createdAt: Date;
85
+ consentId: string;
86
+ updatedAt: Date;
87
+ withdrawalMethod: "subject-initiated" | "automatic-expiry" | "admin" | "api" | "other";
88
+ ipAddress?: string | undefined;
89
+ userAgent?: string | undefined;
90
+ metadata?: Record<string, unknown> | undefined;
91
+ withdrawalReason?: string | undefined;
92
+ } | null>;
93
+ /**
94
+ * Finds all consentWithdrawal records for a specific subject.
95
+ * Returns consentWithdrawals with processed output fields according to the schema configuration.
96
+ *
97
+ * @param subjectId - The subject ID to find consentWithdrawals for
98
+ * @param limit - Optional maximum number of records to return
99
+ * @returns Array of consentWithdrawal records associated with the subject
100
+ */
101
+ findConsentWithdrawalsBySubjectId: (subjectId: string, limit?: number) => Promise<{
102
+ id: string;
103
+ subjectId: string;
104
+ createdAt: Date;
105
+ consentId: string;
106
+ updatedAt: Date;
107
+ withdrawalMethod: "subject-initiated" | "automatic-expiry" | "admin" | "api" | "other";
108
+ ipAddress?: string | undefined;
109
+ userAgent?: string | undefined;
110
+ metadata?: Record<string, unknown> | undefined;
111
+ withdrawalReason?: string | undefined;
112
+ }[]>;
113
+ /**
114
+ * Finds a consentWithdrawal record for a specific consent.
115
+ * Returns the consentWithdrawal with processed output fields according to the schema configuration.
116
+ * This is useful when you need to know if and why a specific consent was withdrawn.
117
+ *
118
+ * @param consentId - The consent ID to find consentWithdrawal for
119
+ * @returns The consentWithdrawal record if found, null otherwise
120
+ */
121
+ findConsentWithdrawalByConsentId: (consentId: string) => Promise<{
122
+ id: string;
123
+ subjectId: string;
124
+ createdAt: Date;
125
+ consentId: string;
126
+ updatedAt: Date;
127
+ withdrawalMethod: "subject-initiated" | "automatic-expiry" | "admin" | "api" | "other";
128
+ ipAddress?: string | undefined;
129
+ userAgent?: string | undefined;
130
+ metadata?: Record<string, unknown> | undefined;
131
+ withdrawalReason?: string | undefined;
132
+ } | null>;
133
+ };
134
+ //# sourceMappingURL=registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../../src/db/schema/consent-withdrawal/registry.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC/C,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAEtD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAE3C;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,yBAAyB,CAAC,EACzC,OAAO,EACP,GAAG,GAAG,EACN,EAAE,eAAe;IAGhB;;;;;;;;;OASG;iDAEiB,IAAI,CAAC,UAAU,EAAE,IAAI,GAAG,WAAW,CAAC,GACtD,OAAO,CAAC,UAAU,CAAC,YACV,sBAAsB;;;;;;;;;;;;IAyBjC;;;;;;;;OAQG;yCAEU,MAAM,cACN,MAAM,UACV,MAAM;;;;;;;;;;;;IAqCf;;;;;;OAMG;8CAC6C,MAAM;;;;;;;;;;;;IAmBtD;;;;;;;OAOG;mDAES,MAAM,UACT,MAAM;;;;;;;;;;;;IAyBf;;;;;;;OAOG;kDACiD,MAAM;;;;;;;;;;;;EAuB3D"}
@@ -0,0 +1,67 @@
1
+ import { z } from 'zod';
2
+ /**
3
+ * Zod schema for validating consent withdrawal entities.
4
+ *
5
+ * This defines the structure and validation rules for consentWithdrawal records:
6
+ * - Required fields: consentId, subjectId
7
+ * - Optional fields: withdrawalReason, withdrawalMethod, ipAddress, metadata
8
+ * - Default current date/time for creation and update timestamps
9
+ *
10
+ * @example
11
+ * ```typescript
12
+ * const withdrawalData = {
13
+ * id: 'wdr_w5qufx2a66m7xkn3ty',
14
+ * consentId: 'cns_hadt8w7nngm7xmx2bn',
15
+ * subjectId: 'sub_x1pftyoufsm7xgo1kv',
16
+ * withdrawalReason: 'No longer wish to receive marketing emails',
17
+ * withdrawalMethod: 'subject-initiated',
18
+ * ipAddress: '192.168.1.1'
19
+ * };
20
+ *
21
+ * // Validate and parse the consentWithdrawal data
22
+ * const validWithdrawal = consentWithdrawalSchema.parse(withdrawalData);
23
+ * ```
24
+ */
25
+ export declare const consentWithdrawalSchema: z.ZodObject<{
26
+ id: z.ZodString;
27
+ consentId: z.ZodString;
28
+ subjectId: z.ZodString;
29
+ withdrawalReason: z.ZodOptional<z.ZodString>;
30
+ withdrawalMethod: z.ZodDefault<z.ZodEnum<["subject-initiated", "automatic-expiry", "admin", "api", "other"]>>;
31
+ ipAddress: z.ZodOptional<z.ZodString>;
32
+ userAgent: z.ZodOptional<z.ZodString>;
33
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
34
+ createdAt: z.ZodDefault<z.ZodDate>;
35
+ updatedAt: z.ZodDefault<z.ZodDate>;
36
+ }, "strip", z.ZodTypeAny, {
37
+ id: string;
38
+ subjectId: string;
39
+ createdAt: Date;
40
+ consentId: string;
41
+ updatedAt: Date;
42
+ withdrawalMethod: "subject-initiated" | "automatic-expiry" | "admin" | "api" | "other";
43
+ ipAddress?: string | undefined;
44
+ userAgent?: string | undefined;
45
+ metadata?: Record<string, unknown> | undefined;
46
+ withdrawalReason?: string | undefined;
47
+ }, {
48
+ id: string;
49
+ subjectId: string;
50
+ consentId: string;
51
+ ipAddress?: string | undefined;
52
+ userAgent?: string | undefined;
53
+ metadata?: Record<string, unknown> | undefined;
54
+ createdAt?: Date | undefined;
55
+ withdrawalReason?: string | undefined;
56
+ updatedAt?: Date | undefined;
57
+ withdrawalMethod?: "subject-initiated" | "automatic-expiry" | "admin" | "api" | "other" | undefined;
58
+ }>;
59
+ /**
60
+ * Type definition for Withdrawal
61
+ *
62
+ * This type represents the structure of a consent withdrawal record
63
+ * as defined by the consentWithdrawalSchema. It includes all fields
64
+ * that are part of the consentWithdrawal entity.
65
+ */
66
+ export type Withdrawal = z.infer<typeof consentWithdrawalSchema>;
67
+ //# sourceMappingURL=schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../../src/db/schema/consent-withdrawal/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAalC,CAAC;AAEH;;;;;;GAMG;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC"}
@@ -0,0 +1,170 @@
1
+ import type { Field } from '../../core/fields';
2
+ import type { C15TOptions } from '../../../types';
3
+ /**
4
+ * Generates the database table configuration for the consent withdrawal entity.
5
+ *
6
+ * This function creates a schema definition that includes all standard consentWithdrawal fields
7
+ * and any additional fields from plugins or configuration. The resulting schema is used
8
+ * for database migrations, schema validation, and query building.
9
+ *
10
+ * @param options - C15T configuration options that may contain consentWithdrawal table customizations
11
+ * @param withdrawalFields - Additional fields from plugins to include in the consentWithdrawal table
12
+ * @returns A complete table schema definition with fields, model name, and metadata
13
+ *
14
+ * @example
15
+ * ```typescript
16
+ * const withdrawalTableSchema = getConsentWithdrawalTable(c15tOptions);
17
+ * // Use the schema for migrations or data access
18
+ * const migrationPlans = generateMigrations(withdrawalTableSchema);
19
+ * ```
20
+ */
21
+ export declare function getConsentWithdrawalTable(options: C15TOptions, withdrawalFields?: Record<string, Field>): {
22
+ /**
23
+ * The name of the consentWithdrawal table in the database, configurable through options
24
+ */
25
+ entityName: string;
26
+ /**
27
+ * The ID prefix for the consentWithdrawal table
28
+ * Used to generate unique prefixed IDs for consentWithdrawals
29
+ */
30
+ entityPrefix: string;
31
+ /**
32
+ * The schema for the consent withdrawal table
33
+ */
34
+ schema: import("zod").ZodObject<{
35
+ id: import("zod").ZodString;
36
+ consentId: import("zod").ZodString;
37
+ subjectId: import("zod").ZodString;
38
+ withdrawalReason: import("zod").ZodOptional<import("zod").ZodString>;
39
+ withdrawalMethod: import("zod").ZodDefault<import("zod").ZodEnum<["subject-initiated", "automatic-expiry", "admin", "api", "other"]>>;
40
+ ipAddress: import("zod").ZodOptional<import("zod").ZodString>;
41
+ userAgent: import("zod").ZodOptional<import("zod").ZodString>;
42
+ metadata: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
43
+ createdAt: import("zod").ZodDefault<import("zod").ZodDate>;
44
+ updatedAt: import("zod").ZodDefault<import("zod").ZodDate>;
45
+ }, "strip", import("zod").ZodTypeAny, {
46
+ id: string;
47
+ subjectId: string;
48
+ createdAt: Date;
49
+ consentId: string;
50
+ updatedAt: Date;
51
+ withdrawalMethod: "subject-initiated" | "automatic-expiry" | "admin" | "api" | "other";
52
+ ipAddress?: string | undefined;
53
+ userAgent?: string | undefined;
54
+ metadata?: Record<string, unknown> | undefined;
55
+ withdrawalReason?: string | undefined;
56
+ }, {
57
+ id: string;
58
+ subjectId: string;
59
+ consentId: string;
60
+ ipAddress?: string | undefined;
61
+ userAgent?: string | undefined;
62
+ metadata?: Record<string, unknown> | undefined;
63
+ createdAt?: Date | undefined;
64
+ withdrawalReason?: string | undefined;
65
+ updatedAt?: Date | undefined;
66
+ withdrawalMethod?: "subject-initiated" | "automatic-expiry" | "admin" | "api" | "other" | undefined;
67
+ }>;
68
+ /**
69
+ * Field definitions for the consent withdrawal table
70
+ */
71
+ fields: {
72
+ /**
73
+ * Reference to the consent that was withdrawn
74
+ */
75
+ consentId: {
76
+ type: string;
77
+ required: boolean;
78
+ fieldName: string;
79
+ references: {
80
+ model: string;
81
+ field: string;
82
+ };
83
+ };
84
+ /**
85
+ * Reference to the subject who withdrew consent
86
+ */
87
+ subjectId: {
88
+ type: string;
89
+ required: boolean;
90
+ fieldName: string;
91
+ references: {
92
+ model: string;
93
+ field: string;
94
+ };
95
+ };
96
+ /**
97
+ * Reason provided for withdrawing consent
98
+ */
99
+ withdrawalReason: {
100
+ type: string;
101
+ required: boolean;
102
+ fieldName: string;
103
+ };
104
+ /**
105
+ * Method by which consent was withdrawn
106
+ * Common values: 'subject-initiated', 'automatic-expiry', 'admin'
107
+ */
108
+ withdrawalMethod: {
109
+ type: string;
110
+ defaultValue: () => string;
111
+ required: boolean;
112
+ fieldName: string;
113
+ };
114
+ /**
115
+ * IP address from which the consentWithdrawal was initiated
116
+ */
117
+ ipAddress: {
118
+ type: string;
119
+ required: boolean;
120
+ fieldName: string;
121
+ };
122
+ /**
123
+ * Subject agent (browser/device) from which the consentWithdrawal was initiated
124
+ */
125
+ userAgent: {
126
+ type: string;
127
+ required: boolean;
128
+ fieldName: string;
129
+ };
130
+ /**
131
+ * Additional metadata about the consentWithdrawal
132
+ */
133
+ metadata: {
134
+ type: string;
135
+ required: boolean;
136
+ fieldName: string;
137
+ };
138
+ /**
139
+ * When the consentWithdrawal record was created
140
+ * Automatically set to current time by default
141
+ */
142
+ createdAt: {
143
+ type: string;
144
+ defaultValue: () => Date;
145
+ required: boolean;
146
+ fieldName: string;
147
+ };
148
+ };
149
+ /**
150
+ * Add unique constraint to ensure a consent can only be withdrawn once
151
+ * (If this constraint is not desired, it can be disabled in options)
152
+ */
153
+ uniqueConstraints: {
154
+ name: string;
155
+ fields: string[];
156
+ }[];
157
+ /**
158
+ * Add indexes for better query performance
159
+ */
160
+ indexes: {
161
+ name: string;
162
+ fields: string[];
163
+ }[];
164
+ /**
165
+ * Execution order during migrations (lower numbers run first)
166
+ * Withdrawal table needs to be created after the consent and subject tables it references
167
+ */
168
+ order: number;
169
+ };
170
+ //# sourceMappingURL=table.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../../../../src/db/schema/consent-withdrawal/table.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAG3C;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,yBAAyB,CACxC,OAAO,EAAE,WAAW,EACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC;IAOvC;;OAEG;;IAGH;;;OAGG;;IAGH;;OAEG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAGH;;OAEG;;QAEF;;WAEG;;;;;;;;;;QAWH;;WAEG;;;;;;;;;;QAWH;;WAEG;;;;;;QASH;;;WAGG;;;;;;;QAUH;;WAEG;;;;;;QAOH;;WAEG;;;;;;QAOH;;WAEG;;;;;;QAOH;;;WAGG;;;;;;;;IAeJ;;;OAGG;;;;;IAWH;;OAEG;;;;;IAYH;;;OAGG;;EAGJ"}
@@ -0,0 +1,28 @@
1
+ import type { BaseEntityConfig } from '../types';
2
+ /**
3
+ * Withdrawal entity configuration
4
+ * @default entityName: "consentWithdrawal", entityPrefix: "wdr"
5
+ */
6
+ export interface ConsentWithdrawalEntityConfig extends BaseEntityConfig {
7
+ fields?: Record<string, string> & {
8
+ id?: string;
9
+ consentId?: string;
10
+ revokedAt?: string;
11
+ revocationReason?: string;
12
+ method?: string;
13
+ actor?: string;
14
+ metadata?: string;
15
+ createdAt?: string;
16
+ };
17
+ /**
18
+ * Prevent multiple consentWithdrawals for the same consent
19
+ *
20
+ * If true, a subject can only have one consentWithdrawal record per consent,
21
+ * preventing multiple revocation records for the same consent.
22
+ * This helps maintain data integrity and clearer consent history.
23
+ *
24
+ * @default false
25
+ */
26
+ preventMultipleWithdrawals?: boolean;
27
+ }
28
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/db/schema/consent-withdrawal/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAEjD;;;GAGG;AACH,MAAM,WAAW,6BAA8B,SAAQ,gBAAgB;IACtE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG;QACjC,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,SAAS,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;IAEF;;;;;;;;OAQG;IACH,0BAA0B,CAAC,EAAE,OAAO,CAAC;CACrC"}