@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,161 @@
1
+ import type { Field } from '../../core/fields';
2
+ import type { C15TOptions } from '../../../types';
3
+ /**
4
+ * Generates the database table configuration for the consent consentPurpose entity.
5
+ *
6
+ * This function creates a schema definition that includes all standard consent consentPurpose 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 consentPurpose table customizations
11
+ * @param purposeFields - Additional fields from plugins to include in the consentPurpose table
12
+ * @returns A complete table schema definition with fields, model name, and metadata
13
+ *
14
+ * @example
15
+ * ```typescript
16
+ * const purposeTableSchema = getPurposeTable(c15tOptions);
17
+ * // Use the schema for migrations or data access
18
+ * const migrationPlans = generateMigrations(purposeTableSchema);
19
+ * ```
20
+ */
21
+ export declare function getPurposeTable(options: C15TOptions, purposeFields?: Record<string, Field>): {
22
+ /**
23
+ * The name of the consentPurpose table in the database, configurable through options
24
+ */
25
+ entityName: string;
26
+ /**
27
+ * The ID prefix for the consentPurpose table
28
+ * Used to generate unique prefixed IDs for purposes
29
+ */
30
+ entityPrefix: string;
31
+ /**
32
+ * The schema for the consentPurpose table
33
+ */
34
+ schema: import("zod").ZodObject<{
35
+ id: import("zod").ZodString;
36
+ code: import("zod").ZodString;
37
+ name: import("zod").ZodString;
38
+ description: import("zod").ZodString;
39
+ isEssential: import("zod").ZodDefault<import("zod").ZodBoolean>;
40
+ dataCategory: import("zod").ZodOptional<import("zod").ZodString>;
41
+ legalBasis: import("zod").ZodOptional<import("zod").ZodString>;
42
+ isActive: import("zod").ZodDefault<import("zod").ZodBoolean>;
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
+ code: string;
48
+ createdAt: Date;
49
+ isActive: boolean;
50
+ updatedAt: Date;
51
+ name: string;
52
+ description: string;
53
+ isEssential: boolean;
54
+ dataCategory?: string | undefined;
55
+ legalBasis?: string | undefined;
56
+ }, {
57
+ id: string;
58
+ code: string;
59
+ name: string;
60
+ description: string;
61
+ createdAt?: Date | undefined;
62
+ isActive?: boolean | undefined;
63
+ updatedAt?: Date | undefined;
64
+ isEssential?: boolean | undefined;
65
+ dataCategory?: string | undefined;
66
+ legalBasis?: string | undefined;
67
+ }>;
68
+ /**
69
+ * Field definitions for the consent consentPurpose table
70
+ */
71
+ fields: {
72
+ /**
73
+ * Unique code for the consentPurpose, used for programmatic identification
74
+ */
75
+ code: {
76
+ type: string;
77
+ required: boolean;
78
+ fieldName: string;
79
+ };
80
+ /**
81
+ * Human-readable name of the consentPurpose
82
+ */
83
+ name: {
84
+ type: string;
85
+ required: boolean;
86
+ fieldName: string;
87
+ };
88
+ /**
89
+ * Detailed description of the consentPurpose, shown to subjects
90
+ */
91
+ description: {
92
+ type: string;
93
+ required: boolean;
94
+ fieldName: string;
95
+ };
96
+ /**
97
+ * Whether this is an essential consentPurpose that doesn't require explicit consent
98
+ * Default: false
99
+ */
100
+ isEssential: {
101
+ type: string;
102
+ defaultValue: () => boolean;
103
+ required: boolean;
104
+ fieldName: string;
105
+ };
106
+ /**
107
+ * Category of data this consentPurpose processes (e.g., 'personal', 'profile')
108
+ * Optional field
109
+ */
110
+ dataCategory: {
111
+ type: string;
112
+ required: boolean;
113
+ fieldName: string;
114
+ };
115
+ /**
116
+ * Legal basis for data processing (e.g., 'consent', 'legitimate interest')
117
+ * Optional field
118
+ */
119
+ legalBasis: {
120
+ type: string;
121
+ required: boolean;
122
+ fieldName: string;
123
+ };
124
+ /**
125
+ * Whether this consentPurpose is currently active
126
+ * Default: true
127
+ */
128
+ isActive: {
129
+ type: string;
130
+ defaultValue: boolean;
131
+ required: boolean;
132
+ fieldName: string;
133
+ };
134
+ /**
135
+ * When the consentPurpose record was created
136
+ * Automatically set to current time by default
137
+ */
138
+ createdAt: {
139
+ type: string;
140
+ defaultValue: () => Date;
141
+ required: boolean;
142
+ fieldName: string;
143
+ };
144
+ /**
145
+ * When the consentPurpose record was last updated
146
+ * Automatically updated on each modification
147
+ */
148
+ updatedAt: {
149
+ type: string;
150
+ defaultValue: () => Date;
151
+ required: boolean;
152
+ fieldName: string;
153
+ };
154
+ };
155
+ /**
156
+ * Execution order during migrations (lower numbers run first)
157
+ * ConsentPurpose table needs to be created relatively early as other tables reference it
158
+ */
159
+ order: number;
160
+ };
161
+ //# sourceMappingURL=table.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../../../../src/db/schema/consent-purpose/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,eAAe,CAC9B,OAAO,EAAE,WAAW,EACpB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC;IAKpC;;OAEG;;IAGH;;;OAGG;;IAGH;;OAEG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAGH;;OAEG;;QAEF;;WAEG;;;;;;QAOH;;WAEG;;;;;;QAOH;;WAEG;;;;;;QAOH;;;WAGG;;;;;;;QAQH;;;WAGG;;;;;;QAOH;;;WAGG;;;;;;QAOH;;;WAGG;;;;;;;QAQH;;;WAGG;;;;;;;QAQH;;;WAGG;;;;;;;;IAeJ;;;OAGG;;EAGJ"}
@@ -0,0 +1,16 @@
1
+ import type { ActiveEntityConfig } from '../types';
2
+ /**
3
+ * ConsentPurpose entity configuration
4
+ * @default entityName: "consentPurpose", entityPrefix: "pur"
5
+ */
6
+ export interface ConsentPurposeEntityConfig extends ActiveEntityConfig {
7
+ fields?: Record<string, string> & {
8
+ id?: string;
9
+ name?: string;
10
+ description?: string;
11
+ isActive?: string;
12
+ createdAt?: string;
13
+ updatedAt?: string;
14
+ };
15
+ }
16
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/db/schema/consent-purpose/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAEnD;;;GAGG;AACH,MAAM,WAAW,0BAA2B,SAAQ,kBAAkB;IACrE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG;QACjC,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,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-purpose-junction/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC"}
@@ -0,0 +1,109 @@
1
+ import type { GenericEndpointContext, RegistryContext } from '../../../types';
2
+ import type { PurposeJunction } from './schema';
3
+ /**
4
+ * Creates and returns a set of consent-purpose junction adapter methods to interact with the database.
5
+ * These methods provide a consistent interface for creating, finding, and managing
6
+ * relationships between consents and purposes while applying hooks and enforcing data validation rules.
7
+ *
8
+ * @param adapter - The database adapter used for direct database operations
9
+ * @param ctx - The context object containing the database adapter, hooks, and options
10
+ * @returns An object containing type-safe consent-purpose junction operations
11
+ *
12
+ * @example
13
+ * ```typescript
14
+ * const junctionAdapter = createConsentPurposeJunctionAdapter(
15
+ * databaseAdapter,
16
+ * createWithHooks,
17
+ * updateWithHooks,
18
+ * c15tOptions
19
+ * );
20
+ *
21
+ * // Create a new junction record
22
+ * const junction = await junctionAdapter.createConsentPurposeJunction({
23
+ * consentId: 'cns_hadt8w7nngm7xmx2bn',
24
+ * purposeId: 'pol_tioiyf19tbkm7xn5vpx',
25
+ * status: 'active'
26
+ * });
27
+ * ```
28
+ */
29
+ export declare function consentPurposeJunctionRegistry({ adapter, ...ctx }: RegistryContext): {
30
+ /**
31
+ * Creates a new consent-purpose junction record in the database.
32
+ * Automatically sets creation timestamp and applies any
33
+ * configured hooks during the creation process.
34
+ *
35
+ * @param junction - Junction data to create (without id and timestamp)
36
+ * @param context - Optional endpoint context for hooks
37
+ * @returns The created junction record with all fields populated
38
+ * @throws May throw an error if hooks prevent creation or if database operations fail
39
+ */
40
+ createConsentPurposeJunction: (junction: Omit<PurposeJunction, "id" | "createdAt" | "status"> & Partial<PurposeJunction>, context?: GenericEndpointContext) => Promise<{
41
+ id: string;
42
+ status: "active" | "withdrawn";
43
+ createdAt: Date;
44
+ consentId: string;
45
+ updatedAt: Date;
46
+ consentPurposeId: string;
47
+ metadata?: Record<string, string | number | boolean> | undefined;
48
+ }>;
49
+ /**
50
+ * Finds all junction records for a specific consent.
51
+ * Returns junctions with processed output fields according to the schema configuration.
52
+ *
53
+ * @param consentId - The consent ID to find purposes for
54
+ * @returns Array of junction records associated with the consent
55
+ */
56
+ findConsentPurposesByConsentId: (consentId: string) => Promise<{
57
+ id: string;
58
+ status: "active" | "withdrawn";
59
+ createdAt: Date;
60
+ consentId: string;
61
+ updatedAt: Date;
62
+ consentPurposeId: string;
63
+ metadata?: Record<string, string | number | boolean> | undefined;
64
+ }[]>;
65
+ /**
66
+ * Finds all junction records for a specific consentPurpose.
67
+ * Returns junctions with processed output fields according to the schema configuration.
68
+ *
69
+ * @param purposeId - The consentPurpose ID to find consents for
70
+ * @returns Array of junction records associated with the consentPurpose
71
+ */
72
+ findConsentPurposesByPurposeId: (purposeId: string) => Promise<{
73
+ id: string;
74
+ status: "active" | "withdrawn";
75
+ createdAt: Date;
76
+ consentId: string;
77
+ updatedAt: Date;
78
+ consentPurposeId: string;
79
+ metadata?: Record<string, string | number | boolean> | undefined;
80
+ }[]>;
81
+ /**
82
+ * Updates a junction record's status.
83
+ * Applies any configured hooks during the update process and
84
+ * processes the output according to schema configuration.
85
+ *
86
+ * @param junctionId - The unique identifier of the junction to update
87
+ * @param status - The new status value ('active' or 'withdrawn')
88
+ * @param context - Optional endpoint context for hooks
89
+ * @returns The updated junction if successful, null if not found or hooks prevented update
90
+ */
91
+ updateConsentPurposeJunction: (junctionId: string, status: "active" | "withdrawn", context?: GenericEndpointContext) => Promise<{
92
+ id: string;
93
+ status: "active" | "withdrawn";
94
+ createdAt: Date;
95
+ consentId: string;
96
+ updatedAt: Date;
97
+ consentPurposeId: string;
98
+ metadata?: Record<string, string | number | boolean> | undefined;
99
+ } | null>;
100
+ /**
101
+ * Deletes all junction records for a specific consent.
102
+ * This effectively removes all consentPurpose connections for the consent.
103
+ *
104
+ * @param consentId - The ID of the consent to remove all consentPurpose connections for
105
+ * @returns True if successful, false otherwise
106
+ */
107
+ deleteConsentPurposeJunctionsByConsentId: (consentId: string) => Promise<boolean>;
108
+ };
109
+ //# sourceMappingURL=registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../../src/db/schema/consent-purpose-junction/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AACvE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAKhD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,8BAA8B,CAAC,EAC9C,OAAO,EACP,GAAG,GAAG,EACN,EAAE,eAAe;IAGhB;;;;;;;;;OASG;6CAEQ,IAAI,CAAC,eAAe,EAAE,IAAI,GAAG,WAAW,GAAG,QAAQ,CAAC,GAC7D,OAAO,CAAC,eAAe,CAAC,YACf,sBAAsB;;;;;;;;;IAuBjC;;;;;;OAMG;gDAC+C,MAAM;;;;;;;;;IAoBxD;;;;;;OAMG;gDAC+C,MAAM;;;;;;;;;IAoBxD;;;;;;;;;OASG;+CAEU,MAAM,UACV,QAAQ,GAAG,WAAW,YACpB,sBAAsB;;;;;;;;;IAsBjC;;;;;;OAMG;0DACyD,MAAM;EAkBnE"}
@@ -0,0 +1,57 @@
1
+ import { z } from 'zod';
2
+ /**
3
+ * Zod schema for validating consent-purpose junction entities.
4
+ *
5
+ * This defines the structure and validation rules for junction records:
6
+ * - Required fields: consentId, purposeId
7
+ * - Default value of 'active' for status
8
+ * - Default current date/time for creation and update timestamps
9
+ * - Default current date/time for update timestamp
10
+ *
11
+ * @example
12
+ * ```typescript
13
+ * const junctionData = {
14
+ * id: 'pjx_w5qufx2a66m7xkn3ty',
15
+ * consentId: 'cns_hadt8w7nngm7xmx2bn',
16
+ * purposeId: 'pur_e8zyhgozr3im7xj59it',
17
+ * status: 'active'
18
+ * };
19
+ *
20
+ * // Validate and parse the junction data
21
+ * const validJunction = consentPurposeJunctionSchema.parse(junctionData);
22
+ * ```
23
+ */
24
+ export declare const consentPurposeJunctionSchema: z.ZodObject<{
25
+ id: z.ZodString;
26
+ consentId: z.ZodString;
27
+ consentPurposeId: z.ZodString;
28
+ status: z.ZodDefault<z.ZodEnum<["active", "withdrawn"]>>;
29
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean]>>>;
30
+ createdAt: z.ZodDefault<z.ZodDate>;
31
+ updatedAt: z.ZodDefault<z.ZodDate>;
32
+ }, "strip", z.ZodTypeAny, {
33
+ id: string;
34
+ status: "active" | "withdrawn";
35
+ createdAt: Date;
36
+ consentId: string;
37
+ updatedAt: Date;
38
+ consentPurposeId: string;
39
+ metadata?: Record<string, string | number | boolean> | undefined;
40
+ }, {
41
+ id: string;
42
+ consentId: string;
43
+ consentPurposeId: string;
44
+ status?: "active" | "withdrawn" | undefined;
45
+ metadata?: Record<string, string | number | boolean> | undefined;
46
+ createdAt?: Date | undefined;
47
+ updatedAt?: Date | undefined;
48
+ }>;
49
+ /**
50
+ * Type definition for PurposeJunction
51
+ *
52
+ * This type represents the structure of a consent-purpose junction record
53
+ * as defined by the consentPurposeJunctionSchema. It includes all fields
54
+ * that are part of the junction entity.
55
+ */
56
+ export type PurposeJunction = z.infer<typeof consentPurposeJunctionSchema>;
57
+ //# sourceMappingURL=schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../../src/db/schema/consent-purpose-junction/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;EAevC,CAAC;AAEH;;;;;;GAMG;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC"}
@@ -0,0 +1,138 @@
1
+ import type { Field } from '../../core/fields';
2
+ import type { C15TOptions } from '../../../types';
3
+ /**
4
+ * Generates the database table configuration for the consent-purpose junction entity.
5
+ *
6
+ * This function creates a schema definition that implements a many-to-many relationship
7
+ * between consents and purposes. The resulting schema is used for database migrations,
8
+ * schema validation, and query building.
9
+ *
10
+ * @param options - C15T configuration options that may contain junction table customizations
11
+ * @param junctionFields - Additional fields from plugins to include in the junction table
12
+ * @returns A complete table schema definition with fields, model name, and metadata
13
+ *
14
+ * @example
15
+ * ```typescript
16
+ * const junctionTableSchema = getPurposeJunctionTable(c15tOptions);
17
+ * // Use the schema for migrations or data access
18
+ * const migrationPlans = generateMigrations(junctionTableSchema);
19
+ * ```
20
+ */
21
+ export declare function getPurposeJunctionTable(options: C15TOptions, junctionFields?: Record<string, Field>): {
22
+ /**
23
+ * The name of the junction table in the database, configurable through options
24
+ */
25
+ entityName: string;
26
+ /**
27
+ * The ID prefix for the consentPurpose junction table
28
+ * Used to generate unique prefixed IDs for consentPurpose junctions
29
+ */
30
+ entityPrefix: string;
31
+ /**
32
+ * The schema for the consentPurpose junction table
33
+ */
34
+ schema: import("zod").ZodObject<{
35
+ id: import("zod").ZodString;
36
+ consentId: import("zod").ZodString;
37
+ consentPurposeId: import("zod").ZodString;
38
+ status: import("zod").ZodDefault<import("zod").ZodEnum<["active", "withdrawn"]>>;
39
+ metadata: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnion<[import("zod").ZodString, import("zod").ZodNumber, import("zod").ZodBoolean]>>>;
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
+ status: "active" | "withdrawn";
45
+ createdAt: Date;
46
+ consentId: string;
47
+ updatedAt: Date;
48
+ consentPurposeId: string;
49
+ metadata?: Record<string, string | number | boolean> | undefined;
50
+ }, {
51
+ id: string;
52
+ consentId: string;
53
+ consentPurposeId: string;
54
+ status?: "active" | "withdrawn" | undefined;
55
+ metadata?: Record<string, string | number | boolean> | undefined;
56
+ createdAt?: Date | undefined;
57
+ updatedAt?: Date | undefined;
58
+ }>;
59
+ /**
60
+ * Field definitions for the consent-purpose junction table
61
+ */
62
+ fields: {
63
+ /**
64
+ * Reference to the consent record this junction is associated with
65
+ */
66
+ consentId: {
67
+ type: string;
68
+ required: boolean;
69
+ fieldName: string;
70
+ references: {
71
+ model: string;
72
+ field: string;
73
+ };
74
+ };
75
+ /**
76
+ * Reference to the consentPurpose record this junction is associated with
77
+ */
78
+ purposeId: {
79
+ type: string;
80
+ required: boolean;
81
+ fieldName: string;
82
+ references: {
83
+ model: string;
84
+ field: string;
85
+ };
86
+ };
87
+ /**
88
+ * Status of this specific consent-purpose relationship
89
+ * Default: 'active'
90
+ */
91
+ status: {
92
+ type: string;
93
+ defaultValue: () => string;
94
+ required: boolean;
95
+ fieldName: string;
96
+ };
97
+ /**
98
+ * Additional metadata about this specific consent-purpose relationship
99
+ */
100
+ metadata: {
101
+ type: string;
102
+ required: boolean;
103
+ fieldName: string;
104
+ };
105
+ /**
106
+ * When the junction record was created
107
+ * Automatically set to current time by default
108
+ */
109
+ createdAt: {
110
+ type: string;
111
+ defaultValue: () => Date;
112
+ required: boolean;
113
+ fieldName: string;
114
+ };
115
+ /**
116
+ * When the junction record was last updated
117
+ * Optional, set during updates
118
+ */
119
+ updatedAt: {
120
+ type: string;
121
+ required: boolean;
122
+ fieldName: string;
123
+ };
124
+ };
125
+ /**
126
+ * Add unique constraint to ensure a consentPurpose can only be associated with a consent once
127
+ */
128
+ uniqueConstraints: {
129
+ name: string;
130
+ fields: string[];
131
+ }[];
132
+ /**
133
+ * Execution order during migrations (lower numbers run first)
134
+ * Junction table needs to be created after the consent and consentPurpose tables it references
135
+ */
136
+ order: number;
137
+ };
138
+ //# sourceMappingURL=table.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../../../../src/db/schema/consent-purpose-junction/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,uBAAuB,CACtC,OAAO,EAAE,WAAW,EACpB,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC;IAOrC;;OAEG;;IAGH;;;OAGG;;IAGH;;OAEG;;;;;;;;;;;;;;;;;;;;;;;;;;IAGH;;OAEG;;QAEF;;WAEG;;;;;;;;;;QAWH;;WAEG;;;;;;;;;;QAWH;;;WAGG;;;;;;;QAQH;;WAEG;;;;;;QAOH;;;WAGG;;;;;;;QAQH;;;WAGG;;;;;;;IAcJ;;OAEG;;;;;IAQH;;;OAGG;;EAGJ"}
@@ -0,0 +1,14 @@
1
+ import type { BaseEntityConfig } from '../types';
2
+ /**
3
+ * ConsentPurpose junction entity configuration
4
+ * @default entityName: "consentPurposeJunction", entityPrefix: "pjx"
5
+ */
6
+ export interface ConsentPurposeJunctionEntityConfig extends BaseEntityConfig {
7
+ fields?: Record<string, string> & {
8
+ id?: string;
9
+ consentId?: string;
10
+ purposeId?: string;
11
+ isAccepted?: string;
12
+ };
13
+ }
14
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/db/schema/consent-purpose-junction/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAEjD;;;GAGG;AACH,MAAM,WAAW,kCAAmC,SAAQ,gBAAgB;IAC3E,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;KACpB,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-record/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC"}
@@ -0,0 +1,119 @@
1
+ import type { GenericEndpointContext, RegistryContext } from '../../../types';
2
+ import type { ConsentRecord } from './schema';
3
+ /**
4
+ * Creates and returns a set of consent record-related adapter methods to interact with the database.
5
+ * These methods provide a consistent interface for creating and querying consent records
6
+ * while applying hooks and enforcing data validation rules.
7
+ *
8
+ * @param adapter - The database adapter used for direct database operations
9
+ * @param ctx - The context object containing the database adapter, hooks, and options
10
+ * @returns An object containing type-safe consent record operations
11
+ *
12
+ * @example
13
+ * ```typescript
14
+ * const recordAdapter = createRecordAdapter(
15
+ * databaseAdapter,
16
+ * createWithHooks,
17
+ * c15tOptions
18
+ * );
19
+ *
20
+ * // Create a new consent record
21
+ * const record = await recordAdapter.createConsentRecord({
22
+ * subjectId: 'sub_x1pftyoufsm7xgo1kv',
23
+ * consentId: 'cns_hadt8w7nngm7xmx2bn',
24
+ * actionType: 'given',
25
+ * details: { ip: '192.168.1.1', userAgent: 'Mozilla/5.0...' }
26
+ * });
27
+ * ```
28
+ */
29
+ export declare function consentRecordRegistry({ adapter, ...ctx }: RegistryContext): {
30
+ /**
31
+ * Creates a new consent record in the database.
32
+ * Automatically sets creation timestamp and applies any
33
+ * configured hooks during the creation process.
34
+ *
35
+ * @param record - Consent record data to create (without id and timestamp)
36
+ * @param context - Optional endpoint context for hooks
37
+ * @returns The created consent record with all fields populated
38
+ * @throws May throw an error if hooks prevent creation or if database operations fail
39
+ */
40
+ createConsentRecord: (record: Omit<ConsentRecord, "id" | "createdAt" | "updatedAt"> & Partial<ConsentRecord>, context?: GenericEndpointContext) => Promise<{
41
+ id: string;
42
+ actionType: string;
43
+ subjectId: string;
44
+ createdAt: Date;
45
+ updatedAt: Date;
46
+ details?: Record<string, unknown> | undefined;
47
+ consentId?: string | undefined;
48
+ }>;
49
+ /**
50
+ * Finds all consent records matching specified filters.
51
+ * Returns records with processed output fields according to the schema configuration.
52
+ *
53
+ * @param subjectId - Optional subject ID to filter records
54
+ * @param consentId - Optional consent ID to filter records
55
+ * @param actionType - Optional action type to filter records
56
+ * @param limit - Optional maximum number of records to return
57
+ * @returns Array of consent records matching the criteria
58
+ */
59
+ findConsentRecords: (subjectId?: string, consentId?: string, actionType?: string, limit?: number) => Promise<{
60
+ id: string;
61
+ actionType: string;
62
+ subjectId: string;
63
+ createdAt: Date;
64
+ updatedAt: Date;
65
+ details?: Record<string, unknown> | undefined;
66
+ consentId?: string | undefined;
67
+ }[]>;
68
+ /**
69
+ * Finds a consent record by its unique ID.
70
+ * Returns the record with processed output fields according to the schema configuration.
71
+ *
72
+ * @param recordId - The unique identifier of the consent record
73
+ * @returns The consent record object if found, null otherwise
74
+ */
75
+ findConsentRecordById: (recordId: string) => Promise<{
76
+ id: string;
77
+ actionType: string;
78
+ subjectId: string;
79
+ createdAt: Date;
80
+ updatedAt: Date;
81
+ details?: Record<string, unknown> | undefined;
82
+ consentId?: string | undefined;
83
+ } | null>;
84
+ /**
85
+ * Finds all consent records for a specific subject.
86
+ * Returns records with processed output fields according to the schema configuration.
87
+ *
88
+ * @param subjectId - The subject ID to find consent records for
89
+ * @param limit - Optional maximum number of records to return
90
+ * @returns Array of consent records associated with the subject
91
+ */
92
+ findConsentRecordsBySubjectId: (subjectId: string, limit?: number) => Promise<{
93
+ id: string;
94
+ actionType: string;
95
+ subjectId: string;
96
+ createdAt: Date;
97
+ updatedAt: Date;
98
+ details?: Record<string, unknown> | undefined;
99
+ consentId?: string | undefined;
100
+ }[]>;
101
+ /**
102
+ * Finds all consent records for a specific consent.
103
+ * Returns records with processed output fields according to the schema configuration.
104
+ *
105
+ * @param consentId - The consent ID to find records for
106
+ * @param limit - Optional maximum number of records to return
107
+ * @returns Array of consent records associated with the consent
108
+ */
109
+ findConsentRecordsByConsentId: (consentId: string, limit?: number) => Promise<{
110
+ id: string;
111
+ actionType: string;
112
+ subjectId: string;
113
+ createdAt: Date;
114
+ updatedAt: Date;
115
+ details?: Record<string, unknown> | undefined;
116
+ consentId?: string | undefined;
117
+ }[]>;
118
+ };
119
+ //# sourceMappingURL=registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../../src/db/schema/consent-record/registry.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAEvE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9C;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,qBAAqB,CAAC,EAAE,OAAO,EAAE,GAAG,GAAG,EAAE,EAAE,eAAe;IAGxE;;;;;;;;;OASG;kCAEM,IAAI,CAAC,aAAa,EAAE,IAAI,GAAG,WAAW,GAAG,WAAW,CAAC,GAC5D,OAAO,CAAC,aAAa,CAAC,YACb,sBAAsB;;;;;;;;;IAsBjC;;;;;;;;;OASG;qCAEU,MAAM,cACN,MAAM,eACL,MAAM,UACX,MAAM;;;;;;;;;IAwCf;;;;;;OAMG;sCACqC,MAAM;;;;;;;;;IAe9C;;;;;;;OAOG;+CAES,MAAM,UACT,MAAM;;;;;;;;;IAqBf;;;;;;;OAOG;+CAES,MAAM,UACT,MAAM;;;;;;;;;EAqBhB"}