@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,72 @@
1
+ import { Kysely } from 'kysely';
2
+ import type { C15TOptions } from '../../../types';
3
+ import type { Database, KyselyDatabaseType } from './types';
4
+ /**
5
+ * Creates a Kysely adapter from the provided configuration
6
+ *
7
+ * This function analyzes the database configuration in C15TOptions and creates
8
+ * an appropriate Kysely instance with the correct dialect. It handles several
9
+ * different configuration formats including:
10
+ * - Direct Kysely instances
11
+ * - Dialect configurations
12
+ * - Raw database connections (SQLite, MySQL, PostgreSQL)
13
+ * - Kysely dialect instances
14
+ *
15
+ * @param config - The C15T configuration options containing database settings
16
+ * @returns An object containing the initialized Kysely instance and database type
17
+ *
18
+ * @example
19
+ * ```typescript
20
+ * // Using with a pre-configured Kysely instance
21
+ * import { Kysely, PostgresDialect } from 'kysely';
22
+ * import { Pool } from 'pg';
23
+ * import { c15tInstance } from '@c15t/backend';
24
+ *
25
+ * // Create a Postgres connection pool
26
+ * const pool = new Pool({
27
+ * host: 'localhost',
28
+ * database: 'consent_db',
29
+ * user: 'postgres',
30
+ * password: 'password'
31
+ * });
32
+ *
33
+ * // Create Kysely instance
34
+ * const db = new Kysely({
35
+ * dialect: new PostgresDialect({ pool })
36
+ * });
37
+ *
38
+ * // Use in c15t configuration
39
+ * const c15t = c15tInstance({
40
+ * secret: process.env.SECRET_KEY,
41
+ * database: { db, type: 'postgres' } // Pre-configured Kysely instance
42
+ * });
43
+ * ```
44
+ *
45
+ * @example
46
+ * ```typescript
47
+ * // Using with a direct connection pool
48
+ * import { Pool } from 'pg';
49
+ * import { c15tInstance } from '@c15t/backend';
50
+ *
51
+ * // Create a Postgres connection pool
52
+ * const pool = new Pool({
53
+ * host: 'localhost',
54
+ * database: 'consent_db',
55
+ * user: 'postgres',
56
+ * password: 'password'
57
+ * });
58
+ *
59
+ * // Pass the pool directly to c15t
60
+ * const c15t = c15tInstance({
61
+ * secret: process.env.SECRET_KEY,
62
+ * database: pool // The adapter will detect it's a Postgres pool
63
+ * });
64
+ * ```
65
+ *
66
+ * @throws {Error} Will throw an error if the database configuration is invalid or if a connection cannot be established
67
+ */
68
+ export declare const createKyselyAdapter: (config: C15TOptions) => Promise<{
69
+ kysely: Kysely<Database> | null;
70
+ databaseType: KyselyDatabaseType | null;
71
+ }>;
72
+ //# sourceMappingURL=dialect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dialect.d.ts","sourceRoot":"","sources":["../../../../src/db/adapters/kysely-adapter/dialect.ts"],"names":[],"mappings":"AAAA,OAAO,EAEN,MAAM,EAKN,MAAM,QAAQ,CAAC;AAChB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,KAAK,EACX,QAAQ,EAGR,kBAAkB,EAElB,MAAM,SAAS,CAAC;AAmDjB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+DG;AACH,eAAO,MAAM,mBAAmB,GAC/B,QAAQ,WAAW,KACjB,OAAO,CAAC;IACV,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;IAChC,YAAY,EAAE,kBAAkB,GAAG,IAAI,CAAC;CACxC,CAwDA,CAAC"}
@@ -0,0 +1,4 @@
1
+ export * from './dialect';
2
+ export * from './types';
3
+ export * from './kysely-adapter';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/db/adapters/kysely-adapter/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,kBAAkB,CAAC"}
@@ -0,0 +1,98 @@
1
+ import type { Kysely } from 'kysely';
2
+ import type { EntityName, EntityTypeMap } from '../../core/types';
3
+ import type { C15TOptions } from '../../../types';
4
+ import type { Adapter } from '../types';
5
+ import type { Database, KyselyDatabaseType } from './types';
6
+ /**
7
+ * Interface for where conditions in Kysely queries
8
+ *
9
+ * This interface defines the structure of query conditions used
10
+ * in database operations. It supports various operators and connectors
11
+ * for building complex query conditions.
12
+ *
13
+ * @typeParam EntityType - The entity type being queried
14
+ */
15
+ export interface WhereCondition<EntityType extends EntityName> {
16
+ /**
17
+ * The field to apply the condition to
18
+ */
19
+ field: keyof EntityTypeMap[EntityType] | 'id';
20
+ /**
21
+ * The value to compare against
22
+ */
23
+ value: unknown;
24
+ /**
25
+ * The operator to use for comparison
26
+ *
27
+ * @default "="
28
+ */
29
+ operator?: 'in' | 'eq' | 'ne' | 'lt' | 'lte' | 'gt' | 'gte' | 'contains' | 'starts_with' | 'ends_with' | 'ilike' | '=';
30
+ /**
31
+ * The logical connector to use with previous conditions
32
+ *
33
+ * @default "AND"
34
+ */
35
+ connector?: 'AND' | 'OR';
36
+ }
37
+ /**
38
+ * Configuration options for the Kysely adapter
39
+ *
40
+ * @example
41
+ * ```typescript
42
+ * const config: KyselyAdapterConfig = {
43
+ * type: 'postgres' // Explicitly set the database type
44
+ * };
45
+ * ```
46
+ */
47
+ export interface KyselyAdapterConfig {
48
+ /**
49
+ * Database type to use with the adapter
50
+ *
51
+ * Setting this explicitly can override the auto-detected type
52
+ * and can be necessary in some environments where detection fails.
53
+ */
54
+ type?: KyselyDatabaseType;
55
+ }
56
+ /**
57
+ * Creates a c15t adapter for Kysely ORM
58
+ *
59
+ * This factory function creates an adapter that allows c15t to use Kysely ORM
60
+ * as its database layer. It supports PostgreSQL, MySQL, SQLite, and MSSQL.
61
+ *
62
+ * @param db - The Kysely database instance
63
+ * @param config - Optional configuration for the Kysely adapter
64
+ * @returns A c15t adapter factory function
65
+ *
66
+ * @example
67
+ * ```typescript
68
+ * import { Kysely, PostgresDialect } from 'kysely';
69
+ * import { Pool } from 'pg';
70
+ * import { c15tInstance } from '@c15t/backend';
71
+ * import { kyselyAdapter } from '@c15t/adapters/kysely';
72
+ *
73
+ * // Create a Postgres connection pool
74
+ * const pool = new Pool({
75
+ * host: 'localhost',
76
+ * database: 'consent_db',
77
+ * user: 'postgres',
78
+ * password: 'password'
79
+ * });
80
+ *
81
+ * // Create Kysely instance
82
+ * const db = new Kysely({
83
+ * dialect: new PostgresDialect({ pool })
84
+ * });
85
+ *
86
+ * // Create the c15t instance with Kysely adapter
87
+ * const c15t = c15tInstance({
88
+ * storage: kyselyAdapter(db, { type: 'postgres' }),
89
+ * // Other c15t options...
90
+ * secret: process.env.SECRET
91
+ * });
92
+ *
93
+ * // Use in your application
94
+ * export default c15tInstance.handler;
95
+ * ```
96
+ */
97
+ export declare const kyselyAdapter: (db: Kysely<Database>, config?: KyselyAdapterConfig) => (opts: C15TOptions) => Adapter;
98
+ //# sourceMappingURL=kysely-adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kysely-adapter.d.ts","sourceRoot":"","sources":["../../../../src/db/adapters/kysely-adapter/kysely-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAKX,MAAM,EAKN,MAAM,QAAQ,CAAC;AAShB,OAAO,KAAK,EAEX,UAAU,EAEV,aAAa,EACb,MAAM,iBAAiB,CAAC;AAEzB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,KAAK,EAAE,OAAO,EAAsB,MAAM,UAAU,CAAC;AAE5D,OAAO,KAAK,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAqB5D;;;;;;;;GAQG;AACH,MAAM,WAAW,cAAc,CAAC,UAAU,SAAS,UAAU;IAC5D;;OAEG;IACH,KAAK,EAAE,MAAM,aAAa,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;IAE9C;;OAEG;IACH,KAAK,EAAE,OAAO,CAAC;IAEf;;;;OAIG;IACH,QAAQ,CAAC,EACN,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,KAAK,GACL,IAAI,GACJ,KAAK,GACL,UAAU,GACV,aAAa,GACb,WAAW,GACX,OAAO,GACP,GAAG,CAAC;IAEP;;;;OAIG;IACH,SAAS,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC;CACzB;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,mBAAmB;IACnC;;;;;OAKG;IACH,IAAI,CAAC,EAAE,kBAAkB,CAAC;CAC1B;AAydD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,eAAO,MAAM,aAAa,GACxB,IAAI,MAAM,CAAC,QAAQ,CAAC,EAAE,SAAS,mBAAmB,MAClD,MAAM,WAAW,KAAG,OAwhBpB,CAAC"}
@@ -0,0 +1,281 @@
1
+ import type { Database as SQLiteDatabase } from 'better-sqlite3';
2
+ import type { Dialect, Kysely, MysqlPool, PostgresPool } from 'kysely';
3
+ import type { Database as KyselyDatabase } from './types';
4
+ import type { AdapterInstance } from '../types';
5
+ import type { EntityTypeMap } from '../../core/types';
6
+ /**
7
+ * Database interface for Kysely that uses the EntityTypeMap
8
+ * to ensure all table names and record types are properly typed.
9
+ *
10
+ * This allows Kysely operations to be type-safe throughout the adapter.
11
+ *
12
+ * @remarks
13
+ * The Database interface is extended from EntityTypeMap, which contains
14
+ * all the entity types defined in your c15t configuration. This provides
15
+ * strong typing for database operations across the entire adapter.
16
+ *
17
+ * @example
18
+ * ```typescript
19
+ * // The interface is used internally by the adapter to provide
20
+ * // type safety for database operations
21
+ * const query = db
22
+ * .selectFrom('consent') // Type-safe table name
23
+ * .select(['id', 'subjectId', 'purposeId']) // Type-safe column names
24
+ * .where('subjectId', '=', subjectId)
25
+ * .executeTakeFirst();
26
+ * ```
27
+ */
28
+ export interface Database extends EntityTypeMap {
29
+ /**
30
+ * Migration history table used by the adapter to track schema changes
31
+ */
32
+ migrations: {
33
+ id: string;
34
+ name: string;
35
+ applied_at: Date;
36
+ batch: number;
37
+ };
38
+ /**
39
+ * Temporary tables used during migrations
40
+ * These are created and dropped during the migration process
41
+ */
42
+ _migration_temp: {
43
+ id: string;
44
+ table_name: string;
45
+ created_at: Date;
46
+ };
47
+ }
48
+ /**
49
+ * Database types supported by the Kysely adapter
50
+ *
51
+ * These represent the major SQL database engines that can be used with the adapter.
52
+ *
53
+ * @example
54
+ * ```typescript
55
+ * // Explicitly specify the database type when creating an adapter
56
+ * const adapter = kyselyAdapter(db, { type: 'postgres' });
57
+ * ```
58
+ */
59
+ export type KyselyDatabaseType = 'postgres' | 'mysql' | 'sqlite' | 'mssql';
60
+ /**
61
+ * Type alias for PostgreSQL connection pool configuration
62
+ *
63
+ * Used when configuring a PostgreSQL database connection.
64
+ *
65
+ * @see {@link https://node-postgres.com/apis/pool | PostgreSQL Pool documentation}
66
+ *
67
+ * @example
68
+ * ```typescript
69
+ * import { Pool } from 'pg';
70
+ *
71
+ * // Create a PostgreSQL connection pool
72
+ * const pool: PostgresPoolConfig = new Pool({
73
+ * host: 'localhost',
74
+ * database: 'consent_db',
75
+ * user: 'postgres',
76
+ * password: 'password'
77
+ * });
78
+ * ```
79
+ */
80
+ export type PostgresPoolConfig = PostgresPool;
81
+ /**
82
+ * Type alias for MySQL connection pool configuration
83
+ *
84
+ * Used when configuring a MySQL database connection.
85
+ *
86
+ * @see {@link https://github.com/sidorares/node-mysql2#using-connection-pools | MySQL Pool documentation}
87
+ *
88
+ * @example
89
+ * ```typescript
90
+ * import mysql from 'mysql2';
91
+ *
92
+ * // Create a MySQL connection pool
93
+ * const pool: MysqlPoolConfig = mysql.createPool({
94
+ * host: 'localhost',
95
+ * user: 'user',
96
+ * database: 'consent_db',
97
+ * password: 'password',
98
+ * waitForConnections: true,
99
+ * connectionLimit: 10,
100
+ * queueLimit: 0
101
+ * });
102
+ * ```
103
+ */
104
+ export type MysqlPoolConfig = MysqlPool;
105
+ /**
106
+ * Type alias for SQLite database configuration
107
+ *
108
+ * Used when configuring a SQLite database connection.
109
+ *
110
+ * @see {@link https://github.com/WiseLibs/better-sqlite3/blob/master/docs/api.md | Better-SQLite3 documentation}
111
+ *
112
+ * @example
113
+ * ```typescript
114
+ * import Database from 'better-sqlite3';
115
+ *
116
+ * // Create a SQLite database connection
117
+ * const db: SQLiteDatabaseConfig = new Database('consent.db', {
118
+ * readonly: false,
119
+ * fileMustExist: false
120
+ * });
121
+ * ```
122
+ */
123
+ export type SQLiteDatabaseConfig = SQLiteDatabase;
124
+ /**
125
+ * Configuration for a Kysely dialect
126
+ *
127
+ * This interface allows direct configuration of a Kysely dialect
128
+ * with explicit type information.
129
+ *
130
+ * @example
131
+ * ```typescript
132
+ * import { PostgresDialect } from 'kysely';
133
+ * import { Pool } from 'pg';
134
+ * import { c15tInstance } from '@c15t/backend';
135
+ *
136
+ * // Create a PostgreSQL connection pool
137
+ * const pool = new Pool({
138
+ * host: 'localhost',
139
+ * database: 'consent_db'
140
+ * });
141
+ *
142
+ * // Create a dialect config
143
+ * const dialectConfig: DialectConfig = {
144
+ * dialect: new PostgresDialect({ pool }),
145
+ * type: 'postgres',
146
+ * casing: 'camel'
147
+ * };
148
+ *
149
+ * // Use in c15t configuration
150
+ * const c15t = c15tInstance({
151
+ * storage: kyselyAdapter(dialectConfig),
152
+ * secret: process.env.SECRET_KEY
153
+ * });
154
+ * ```
155
+ */
156
+ export interface DialectConfig {
157
+ /**
158
+ * The Kysely dialect instance to use for database operations
159
+ *
160
+ * @see {@link https://kysely.dev/docs/dialects | Kysely dialects documentation}
161
+ */
162
+ dialect: Dialect;
163
+ /**
164
+ * The type of database being connected to
165
+ *
166
+ * This is used by the adapter to adjust query behavior for different database engines.
167
+ */
168
+ type: KyselyDatabaseType;
169
+ /**
170
+ * Casing style for table names in the database
171
+ *
172
+ * This affects how table names are transformed when interacting with the database.
173
+ * For example, with 'camel' casing, 'subjectProfile' becomes 'subject_profile' in the database.
174
+ * With 'snake' casing, it remains as 'subject_profile'.
175
+ *
176
+ * @default "camel"
177
+ */
178
+ casing?: 'snake' | 'camel';
179
+ /**
180
+ * Whether to apply the casing transformation to column names as well
181
+ *
182
+ * When true, column names will be transformed according to the casing setting.
183
+ * When false, column names will remain in their original case.
184
+ *
185
+ * @default true
186
+ */
187
+ applyCasingToColumns?: boolean;
188
+ }
189
+ /**
190
+ * Configuration for an existing Kysely instance
191
+ *
192
+ * This allows using a pre-configured Kysely instance with the adapter.
193
+ *
194
+ * @example
195
+ * ```typescript
196
+ * import { Kysely, PostgresDialect } from 'kysely';
197
+ * import { Pool } from 'pg';
198
+ * import { c15tInstance } from '@c15t/backend';
199
+ *
200
+ * // Create a Postgres connection pool
201
+ * const pool = new Pool({
202
+ * host: 'localhost',
203
+ * database: 'consent_db'
204
+ * });
205
+ *
206
+ * // Create a Kysely instance
207
+ * const db = new Kysely<Database>({
208
+ * dialect: new PostgresDialect({ pool })
209
+ * });
210
+ *
211
+ * // Use the pre-configured instance
212
+ * const config: KyselyInstanceConfig = {
213
+ * db,
214
+ * type: 'postgres',
215
+ * casing: 'camel'
216
+ * };
217
+ *
218
+ * // Pass to c15t configuration
219
+ * const c15t = c15tInstance({
220
+ * storage: kyselyAdapter(config),
221
+ * secret: process.env.SECRET_KEY
222
+ * });
223
+ * ```
224
+ */
225
+ export interface KyselyInstanceConfig {
226
+ /**
227
+ * Pre-configured Kysely instance to use for database operations
228
+ *
229
+ * This should be a fully initialized Kysely instance with the correct
230
+ * dialect and configuration for your database.
231
+ */
232
+ db: Kysely<KyselyDatabase>;
233
+ /**
234
+ * The type of database the Kysely instance is connected to
235
+ *
236
+ * This is used to adjust query behavior for different database engines.
237
+ */
238
+ type: KyselyDatabaseType;
239
+ /**
240
+ * Casing style for table names in the database
241
+ *
242
+ * This affects how table names are transformed when interacting with the database.
243
+ * For example, with 'camel' casing, 'subjectProfile' becomes 'subject_profile' in the database.
244
+ * With 'snake' casing, it remains as 'subject_profile'.
245
+ *
246
+ * @default "camel"
247
+ */
248
+ casing?: 'snake' | 'camel';
249
+ /**
250
+ * Whether to apply the casing transformation to column names as well
251
+ *
252
+ * When true, column names will be transformed according to the casing setting.
253
+ * When false, column names will remain in their original case.
254
+ *
255
+ * @default true
256
+ */
257
+ applyCasingToColumns?: boolean;
258
+ }
259
+ /**
260
+ * Union type representing all possible database configurations
261
+ *
262
+ * This comprehensive type allows various ways to configure the database:
263
+ * - Direct connection pools (PostgreSQL, MySQL)
264
+ * - SQLite database instance
265
+ * - Kysely dialect
266
+ * - Custom adapter instance
267
+ * - Dialect configuration
268
+ * - Kysely instance configuration
269
+ *
270
+ * @remarks
271
+ * This flexible approach allows you to use the configuration pattern that
272
+ * works best for your application. You can pass direct database connections,
273
+ * pre-configured Kysely instances, or dialect configurations.
274
+ *
275
+ * @see {@link kyselyAdapter} The function that consumes this configuration
276
+ */
277
+ export type DatabaseConfiguration = PostgresPoolConfig | MysqlPoolConfig | SQLiteDatabaseConfig | Dialect | AdapterInstance | DialectConfig | KyselyInstanceConfig | {
278
+ provider: string;
279
+ options: DatabaseConfiguration;
280
+ };
281
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/db/adapters/kysely-adapter/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,IAAI,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACjE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACvE,OAAO,KAAK,EAAE,QAAQ,IAAI,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACrF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAErD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,WAAW,QAAS,SAAQ,aAAa;IAK9C;;OAEG;IACH,UAAU,EAAE;QACX,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,UAAU,EAAE,IAAI,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;KACd,CAAC;IAEF;;;OAGG;IACH,eAAe,EAAE;QAChB,EAAE,EAAE,MAAM,CAAC;QACX,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,EAAE,IAAI,CAAC;KACjB,CAAC;CACF;AAED;;;;;;;;;;GAUG;AACH,MAAM,MAAM,kBAAkB,GAAG,UAAU,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;AAE3E;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,MAAM,kBAAkB,GAAG,YAAY,CAAC;AAE9C;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,MAAM,eAAe,GAAG,SAAS,CAAC;AAExC;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,MAAM,oBAAoB,GAAG,cAAc,CAAC;AAElD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,MAAM,WAAW,aAAa;IAC7B;;;;OAIG;IACH,OAAO,EAAE,OAAO,CAAC;IAEjB;;;;OAIG;IACH,IAAI,EAAE,kBAAkB,CAAC;IAEzB;;;;;;;;OAQG;IACH,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;IAE3B;;;;;;;OAOG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,MAAM,WAAW,oBAAoB;IACpC;;;;;OAKG;IACH,EAAE,EAAE,MAAM,CAAC,cAAc,CAAC,CAAC;IAE3B;;;;OAIG;IACH,IAAI,EAAE,kBAAkB,CAAC;IAEzB;;;;;;;;OAQG;IACH,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;IAE3B;;;;;;;OAOG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,MAAM,qBAAqB,GAC9B,kBAAkB,GAClB,eAAe,GACf,oBAAoB,GACpB,OAAO,GACP,eAAe,GACf,aAAa,GACb,oBAAoB,GACpB;IACA,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,qBAAqB,CAAC;CAC9B,CAAC"}