@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,431 @@
1
+ /**
2
+ * Configuration options for initializing a c15t client.
3
+ *
4
+ * This interface defines the required and optional parameters for creating
5
+ * a client that can interact with the c15t consent management API.
6
+ *
7
+ * @example
8
+ * ```typescript
9
+ * // Basic client configuration
10
+ * const options: c15tClientOptions = {
11
+ * baseURL: 'https://api.example.com/consent',
12
+ * headers: {
13
+ * 'X-API-Key': 'your-api-key',
14
+ * 'Authorization': 'Bearer token'
15
+ * }
16
+ * };
17
+ *
18
+ * // Advanced configuration with plugins and custom fetch
19
+ * const advancedOptions: c15tClientOptions = {
20
+ * baseURL: 'https://api.example.com/consent',
21
+ * headers: {
22
+ * 'X-API-Key': 'your-api-key',
23
+ * 'Authorization': 'Bearer token'
24
+ * },
25
+ * fetchOptions: {
26
+ * customFetchImpl: nodeFetch // Use node-fetch in Node.js environments
27
+ * },
28
+ * plugins: [
29
+ * analyticsPlugin({ trackConsent: true }),
30
+ * geoPlugin({ defaultJurisdiction: 'us-ca' })
31
+ * ]
32
+ * };
33
+ * ```
34
+ */
35
+ export interface c15tClientOptions {
36
+ /**
37
+ * Base URL for API endpoints.
38
+ *
39
+ * The URL should point to the root of the c15t API without a trailing slash.
40
+ * All endpoint paths will be appended to this base URL.
41
+ *
42
+ * @example 'https://api.example.com/consent'
43
+ */
44
+ baseURL: string;
45
+ /**
46
+ * Default request headers to include with all API requests.
47
+ *
48
+ * Common headers include API keys, authorization tokens, and content type.
49
+ * These headers will be included in every request made by the client.
50
+ *
51
+ * @example { 'X-API-Key': 'your-api-key', 'Authorization': 'Bearer token' }
52
+ */
53
+ headers?: Record<string, string>;
54
+ /**
55
+ * Additional configuration options for the fetch implementation.
56
+ *
57
+ * These options control the behavior of the underlying HTTP client.
58
+ */
59
+ fetchOptions?: {
60
+ /**
61
+ * Custom fetch implementation to use instead of the global fetch.
62
+ *
63
+ * This can be useful for environments without a native fetch,
64
+ * or for using a fetch implementation with additional features.
65
+ *
66
+ * @example
67
+ * ```typescript
68
+ * import nodeFetch from 'node-fetch';
69
+ *
70
+ * const options = {
71
+ * fetchOptions: {
72
+ * customFetchImpl: nodeFetch
73
+ * }
74
+ * };
75
+ * ```
76
+ */
77
+ customFetchImpl?: typeof fetch;
78
+ };
79
+ /**
80
+ * Client plugins to extend the core client functionality.
81
+ *
82
+ * Plugins can add additional methods and features to the client,
83
+ * such as analytics tracking, geo-location services, etc.
84
+ *
85
+ * @example
86
+ * ```typescript
87
+ * const options = {
88
+ * plugins: [
89
+ * analyticsPlugin({
90
+ * trackConsentChanges: true,
91
+ * eventPrefix: 'consent_'
92
+ * }),
93
+ * geoPlugin({
94
+ * defaultJurisdiction: 'us-ca',
95
+ * cacheResults: true
96
+ * })
97
+ * ]
98
+ * };
99
+ * ```
100
+ */
101
+ plugins?: c15tClientPlugin[];
102
+ }
103
+ /**
104
+ * Request configuration options for API requests.
105
+ *
106
+ * This interface defines the options that can be provided when making
107
+ * HTTP requests to the c15t API endpoints.
108
+ *
109
+ * @typeParam ResponseType - The expected response data type
110
+ *
111
+ * @example
112
+ * ```typescript
113
+ * // Basic GET request options
114
+ * const getOptions: FetchOptions<SubjectConsent> = {
115
+ * method: 'GET',
116
+ * query: { subjectId: 'sub_x1pftyoufsm7xgo1kv' }
117
+ * };
118
+ *
119
+ * // POST request with error handling
120
+ * const postOptions: FetchOptions<UpdateResult> = {
121
+ * method: 'POST',
122
+ * body: { preferences: { analytics: true } },
123
+ * throw: true,
124
+ * onError: ({ error }) => {
125
+ * console.error(`Error ${error.status}: ${error.message}`);
126
+ * }
127
+ * };
128
+ * ```
129
+ */
130
+ export interface FetchOptions<ResponseType = unknown> {
131
+ /**
132
+ * HTTP method for the request.
133
+ *
134
+ * Defaults to 'GET' if not specified.
135
+ */
136
+ method?: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH';
137
+ /**
138
+ * Request body to send with the request.
139
+ *
140
+ * For non-GET requests, this data will be serialized as JSON
141
+ * and sent in the request body.
142
+ *
143
+ * @example
144
+ * ```typescript
145
+ * const options = {
146
+ * body: {
147
+ * preferences: { analytics: true, marketing: false },
148
+ * timestamp: new Date().toISOString()
149
+ * }
150
+ * };
151
+ * ```
152
+ */
153
+ body?: Record<string, unknown>;
154
+ /**
155
+ * Query parameters to include in the request URL.
156
+ *
157
+ * These parameters will be appended to the URL as query string parameters.
158
+ * Array values will result in multiple query parameters with the same name.
159
+ *
160
+ * @example
161
+ * ```typescript
162
+ * const options = {
163
+ * query: {
164
+ * subjectId: 'sub_x1pftyoufsm7xgo1kv',
165
+ * purposes: ['pur_uvrr67my07m7xj2bta', 'pur_vv76m0rtb2dm7xj59gt'], // Results in ?purposes=analytics&purposes=marketing
166
+ * includeHistory: true
167
+ * }
168
+ * };
169
+ * ```
170
+ */
171
+ query?: Record<string, string | number | boolean | string[] | undefined>;
172
+ /**
173
+ * Custom headers to include with this specific request.
174
+ *
175
+ * These headers will be merged with the default headers
176
+ * configured for the client.
177
+ *
178
+ * @example
179
+ * ```typescript
180
+ * const options = {
181
+ * headers: {
182
+ * 'X-Request-ID': generateRequestId(),
183
+ * 'Cache-Control': 'no-cache'
184
+ * }
185
+ * };
186
+ * ```
187
+ */
188
+ headers?: Record<string, string>;
189
+ /**
190
+ * Whether to throw an error when the response is not successful.
191
+ *
192
+ * If true, the client will throw an error for non-2xx responses
193
+ * instead of returning a response context with the error.
194
+ *
195
+ * @default false
196
+ *
197
+ * @example
198
+ * ```typescript
199
+ * // This will throw an error if the request fails
200
+ * try {
201
+ * const result = await client.$fetch('/important-endpoint', {
202
+ * throw: true
203
+ * });
204
+ * // Only runs if request was successful
205
+ * processResult(result.data);
206
+ * } catch (error) {
207
+ * handleError(error);
208
+ * }
209
+ * ```
210
+ */
211
+ throw?: boolean;
212
+ /**
213
+ * Callback function to execute on successful response.
214
+ *
215
+ * This function will be called when the request completes successfully
216
+ * with a 2xx status code.
217
+ *
218
+ * @param context The response context containing the result data
219
+ *
220
+ * @example
221
+ * ```typescript
222
+ * const options = {
223
+ * onSuccess: ({ data }) => {
224
+ * console.log('Request succeeded:', data);
225
+ * updateUI(data);
226
+ * }
227
+ * };
228
+ * ```
229
+ */
230
+ onSuccess?: (context: ResponseContext<ResponseType>) => void | Promise<void>;
231
+ /**
232
+ * Callback function to execute on error response.
233
+ *
234
+ * This function will be called when the request fails with a non-2xx
235
+ * status code or when an exception occurs during the request.
236
+ *
237
+ * @param context The response context containing the error details
238
+ *
239
+ * @example
240
+ * ```typescript
241
+ * const options = {
242
+ * onError: ({ error }) => {
243
+ * console.error(`Request failed (${error.status}):`, error.message);
244
+ * showErrorNotification(error.message);
245
+ * }
246
+ * };
247
+ * ```
248
+ */
249
+ onError?: (context: ResponseContext<ResponseType>) => void | Promise<void>;
250
+ /**
251
+ * Additional fetch options to include in the request.
252
+ *
253
+ * These options will be passed directly to the fetch implementation.
254
+ *
255
+ * @example
256
+ * ```typescript
257
+ * const options = {
258
+ * fetchOptions: {
259
+ * credentials: 'include', // Send cookies with cross-origin requests
260
+ * mode: 'cors',
261
+ * cache: 'no-cache'
262
+ * }
263
+ * };
264
+ * ```
265
+ */
266
+ fetchOptions?: RequestInit;
267
+ }
268
+ /**
269
+ * Response context returned from API requests.
270
+ *
271
+ * This interface contains the complete information about an API response,
272
+ * including the data, response object, and any error information.
273
+ *
274
+ * @typeParam ResponseType - The expected response data type
275
+ *
276
+ * @example
277
+ * ```typescript
278
+ * // Processing a response context
279
+ * const response: ResponseContext<SubjectData> = await client.$fetch('/subject/123');
280
+ *
281
+ * if (response.ok) {
282
+ * // Handle successful response
283
+ * console.log('Subject data:', response.data);
284
+ * // Access headers if needed
285
+ * const etag = response.response?.headers.get('ETag');
286
+ * } else {
287
+ * // Handle error response
288
+ * console.error(`Error ${response.error?.status}: ${response.error?.message}`);
289
+ * if (response.error?.status === 404) {
290
+ * console.log('Subject not found');
291
+ * }
292
+ * }
293
+ * ```
294
+ */
295
+ export interface ResponseContext<ResponseType = unknown> {
296
+ /**
297
+ * Response data returned by the API.
298
+ *
299
+ * For successful requests, this will contain the parsed JSON response.
300
+ * For failed requests or non-JSON responses, this will be null.
301
+ */
302
+ data: ResponseType | null;
303
+ /**
304
+ * Original fetch Response object.
305
+ *
306
+ * This contains the raw response information, such as status, headers, etc.
307
+ * For network errors or other exceptions, this may be null.
308
+ */
309
+ response: Response | null;
310
+ /**
311
+ * Error information if the request failed.
312
+ *
313
+ * This will be null for successful requests (2xx status codes).
314
+ * For failed requests, this contains the error details.
315
+ */
316
+ error: {
317
+ /**
318
+ * Error message describing what went wrong
319
+ */
320
+ message: string;
321
+ /**
322
+ * HTTP status code or custom error code
323
+ */
324
+ status: number;
325
+ /**
326
+ * Optional error code for more specific error identification
327
+ */
328
+ code?: string;
329
+ } | null;
330
+ /**
331
+ * Whether the request was successful.
332
+ *
333
+ * True for successful requests (2xx status codes), false otherwise.
334
+ */
335
+ ok: boolean;
336
+ }
337
+ /**
338
+ * Client plugin interface for extending the c15t client functionality.
339
+ *
340
+ * Plugins can add additional methods and features to the client,
341
+ * such as analytics tracking, geo-location services, etc.
342
+ *
343
+ * @example
344
+ * ```typescript
345
+ * // Defining a custom plugin
346
+ * const analyticsPlugin = (options = {}): c15tClientPlugin => ({
347
+ * id: 'analytics',
348
+ *
349
+ * init: (client) => {
350
+ * console.log('Analytics plugin initialized');
351
+ * },
352
+ *
353
+ * methods: {
354
+ * trackEvent: async (eventName, properties) => {
355
+ * // Implementation logic
356
+ * return { success: true };
357
+ * },
358
+ *
359
+ * getAnalyticsConsent: async () => {
360
+ * // Get analytics-specific consent
361
+ * return { allowed: true };
362
+ * }
363
+ * }
364
+ * });
365
+ *
366
+ * // Using the plugin
367
+ * const client = createConsentClient({
368
+ * baseURL: 'https://api.example.com',
369
+ * plugins: [analyticsPlugin({ trackPageviews: true })]
370
+ * });
371
+ *
372
+ * // Now you can use the plugin methods
373
+ * client.trackEvent('button_click', { buttonId: 'submit' });
374
+ * ```
375
+ */
376
+ export interface c15tClientPlugin {
377
+ /**
378
+ * Unique plugin identifier.
379
+ *
380
+ * This ID should be unique across all plugins to avoid conflicts.
381
+ */
382
+ id: string;
383
+ /**
384
+ * Plugin initialization function.
385
+ *
386
+ * This function is called when the plugin is registered with the client.
387
+ * It can be used to set up the plugin and perform any necessary initialization.
388
+ *
389
+ * @param client The c15t client instance this plugin is being initialized with
390
+ */
391
+ init?: (client: c15tClient) => void;
392
+ /**
393
+ * Extensions to client methods.
394
+ *
395
+ * These methods will be added to the client instance, allowing plugins
396
+ * to extend the client's functionality with additional methods.
397
+ */
398
+ methods?: Record<string, (...args: unknown[]) => unknown>;
399
+ /**
400
+ * Type inference for the server-side plugin implementation.
401
+ *
402
+ * This is used for type checking to ensure the client plugin is compatible
403
+ * with the server-side plugin implementation.
404
+ *
405
+ * @internal This property is primarily for TypeScript type checking
406
+ */
407
+ $InferServerPlugin?: Record<string, unknown>;
408
+ }
409
+ /**
410
+ * Interface for c15t client instance.
411
+ * This is used for the plugin init type to avoid circular references.
412
+ *
413
+ * @internal This interface is primarily used internally for type definitions
414
+ */
415
+ export interface c15tClient {
416
+ /**
417
+ * Makes a custom API request to any endpoint.
418
+ *
419
+ * @typeParam ResponseType - The expected response data type
420
+ * @param path - The API endpoint path
421
+ * @param options - Request configuration options
422
+ * @returns Response context containing the requested data if successful
423
+ */
424
+ $fetch<ResponseType>(path: string, options?: FetchOptions<ResponseType>): Promise<ResponseContext<ResponseType>>;
425
+ /**
426
+ * Index signature to allow dynamic access to properties.
427
+ * This enables plugins to add methods to the client.
428
+ */
429
+ [key: string]: unknown;
430
+ }
431
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/client/types.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,MAAM,WAAW,iBAAiB;IACjC;;;;;;;OAOG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEjC;;;;OAIG;IACH,YAAY,CAAC,EAAE;QACd;;;;;;;;;;;;;;;;WAgBG;QACH,eAAe,CAAC,EAAE,OAAO,KAAK,CAAC;KAC/B,CAAC;IAEF;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,OAAO,CAAC,EAAE,gBAAgB,EAAE,CAAC;CAC7B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,WAAW,YAAY,CAAC,YAAY,GAAG,OAAO;IACnD;;;;OAIG;IACH,MAAM,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,OAAO,CAAC;IAErD;;;;;;;;;;;;;;;OAeG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAE/B;;;;;;;;;;;;;;;;OAgBG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC;IAEzE;;;;;;;;;;;;;;;OAeG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEjC;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB;;;;;;;;;;;;;;;;;OAiBG;IACH,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,eAAe,CAAC,YAAY,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE7E;;;;;;;;;;;;;;;;;OAiBG;IACH,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,eAAe,CAAC,YAAY,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE3E;;;;;;;;;;;;;;;OAeG;IACH,YAAY,CAAC,EAAE,WAAW,CAAC;CAC3B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,WAAW,eAAe,CAAC,YAAY,GAAG,OAAO;IACtD;;;;;OAKG;IACH,IAAI,EAAE,YAAY,GAAG,IAAI,CAAC;IAE1B;;;;;OAKG;IACH,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAC;IAE1B;;;;;OAKG;IACH,KAAK,EAAE;QACN;;WAEG;QACH,OAAO,EAAE,MAAM,CAAC;QAEhB;;WAEG;QACH,MAAM,EAAE,MAAM,CAAC;QAEf;;WAEG;QACH,IAAI,CAAC,EAAE,MAAM,CAAC;KACd,GAAG,IAAI,CAAC;IAET;;;;OAIG;IACH,EAAE,EAAE,OAAO,CAAC;CACZ;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,MAAM,WAAW,gBAAgB;IAChC;;;;OAIG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;;;;;;OAOG;IACH,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,CAAC;IAEpC;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC,CAAC;IAE1D;;;;;;;OAOG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC7C;AAED;;;;;GAKG;AACH,MAAM,WAAW,UAAU;IAC1B;;;;;;;OAOG;IACH,MAAM,CAAC,YAAY,EAClB,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,YAAY,CAAC,YAAY,CAAC,GAClC,OAAO,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC,CAAC;IAE1C;;;OAGG;IACH,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACvB"}
package/dist/core.d.ts ADDED
@@ -0,0 +1,124 @@
1
+ import { router } from './api/index';
2
+ import type { C15TResult, C15TResultAsync } from './error/results';
3
+ import type { C15TContext, C15TOptions, C15TPlugin, FilterActions } from './types';
4
+ /**
5
+ * Interface representing a configured c15t consent management instance.
6
+ *
7
+ * @typeParam PluginTypes - Array of plugin types used in this instance
8
+ *
9
+ * @remarks
10
+ * The C15TInstance provides the main interface for interacting with the consent
11
+ * management system. It includes methods for handling requests, accessing API
12
+ * endpoints, and managing the system's configuration.
13
+ *
14
+ * All asynchronous operations return {@link C15TResultAsync} types for
15
+ * consistent error handling across the system.
16
+ *
17
+ * @example
18
+ * ```typescript
19
+ * const instance: C15TInstance = c15tInstance({
20
+ * secret: 'your-secret',
21
+ * storage: memoryAdapter()
22
+ * });
23
+ *
24
+ * // Handle an incoming request
25
+ * const response = await instance.handler(request);
26
+ * ```
27
+ */
28
+ export interface C15TInstance<PluginTypes extends C15TPlugin[] = C15TPlugin[]> {
29
+ /**
30
+ * Processes incoming HTTP requests and routes them to appropriate handlers.
31
+ *
32
+ * @param request - The incoming web request
33
+ * @returns A Promise resolving to a Result containing the HTTP response
34
+ *
35
+ * @throws Never - All errors are captured in the Result type
36
+ *
37
+ * @example
38
+ * ```typescript
39
+ * const result = await instance.handler(request);
40
+ * result.match(
41
+ * response => sendResponse(response),
42
+ * error => handleError(error)
43
+ * );
44
+ * ```
45
+ */
46
+ handler: (request: Request) => Promise<C15TResultAsync<Response>>;
47
+ /**
48
+ * Retrieves available API endpoints and their configurations.
49
+ *
50
+ * @returns A Promise resolving to a Result containing the available API endpoints
51
+ *
52
+ * @throws Never - All errors are captured in the Result type
53
+ *
54
+ * @example
55
+ * ```typescript
56
+ * const endpoints = await instance.getApi();
57
+ * endpoints.map(
58
+ * apis => console.log('Available endpoints:', apis),
59
+ * error => console.error('Failed to get endpoints:', error)
60
+ * );
61
+ * ```
62
+ */
63
+ getApi: () => Promise<C15TResultAsync<FilterActions<ReturnType<typeof router>['endpoints']>>>;
64
+ /**
65
+ * The configuration options used for this instance.
66
+ */
67
+ options: C15TOptions<PluginTypes>;
68
+ /**
69
+ * Access to the underlying context as a Result type.
70
+ *
71
+ * @remarks
72
+ * The context is wrapped in a Result type to ensure error handling
73
+ * consistency. Access should be handled using Result pattern methods.
74
+ */
75
+ $context: Promise<C15TResult<C15TContext>>;
76
+ }
77
+ /**
78
+ * Creates a new c15t consent management instance.
79
+ *
80
+ * @typeParam PluginTypes - Array of plugin types to be used in this instance
81
+ * @typeParam ConfigOptions - Configuration options extending the base C15TOptions
82
+ *
83
+ * @param options - Configuration options for the consent management system
84
+ * @returns A configured C15TInstance ready for use
85
+ *
86
+ * @remarks
87
+ * This is the main factory function for creating c15t instances. It initializes
88
+ * the consent management system with the provided configuration and sets up all
89
+ * necessary components including:
90
+ *
91
+ * - Database adapters
92
+ * - Plugin system
93
+ * - Request handlers
94
+ * - API endpoints
95
+ * - CORS configuration
96
+ *
97
+ * All async operations use the Result pattern for error handling, ensuring
98
+ * that errors are handled consistently throughout the system.
99
+ *
100
+ * @example
101
+ * Basic initialization:
102
+ * ```typescript
103
+ * import { c15tInstance } from '@c15t/backend';
104
+ *
105
+ * const manager = c15tInstance({
106
+ * secret: process.env.SECRET_KEY,
107
+ * storage: memoryAdapter()
108
+ * });
109
+ * ```
110
+ *
111
+ * @example
112
+ * Advanced initialization with type parameters:
113
+ * ```typescript
114
+ * type MyPlugins = [typeof geoPlugin, typeof analyticsPlugin];
115
+ *
116
+ * const c15t = c15tInstance<MyPlugins>({
117
+ * secret: process.env.SECRET_KEY,
118
+ * storage: kyselyAdapter(db),
119
+ * plugins: [geoPlugin(), analyticsPlugin()]
120
+ * });
121
+ * ```
122
+ */
123
+ export declare const c15tInstance: <PluginTypes extends C15TPlugin[] = C15TPlugin[], ConfigOptions extends C15TOptions<PluginTypes> = C15TOptions<PluginTypes>>(options: ConfigOptions) => C15TInstance<PluginTypes>;
124
+ //# sourceMappingURL=core.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAEnE,OAAO,KAAK,EACX,WAAW,EACX,WAAW,EACX,UAAU,EACV,aAAa,EACb,MAAM,SAAS,CAAC;AAGjB;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,WAAW,YAAY,CAAC,WAAW,SAAS,UAAU,EAAE,GAAG,UAAU,EAAE;IAC5E;;;;;;;;;;;;;;;;OAgBG;IACH,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC;IAElE;;;;;;;;;;;;;;;OAeG;IACH,MAAM,EAAE,MAAM,OAAO,CACpB,eAAe,CAAC,aAAa,CAAC,UAAU,CAAC,OAAO,MAAM,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CACtE,CAAC;IAEF;;OAEG;IACH,OAAO,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC;IAElC;;;;;;OAMG;IACH,QAAQ,EAAE,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC;CAC3C;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AACH,eAAO,MAAM,YAAY,GACxB,WAAW,SAAS,UAAU,EAAE,GAAG,UAAU,EAAE,EAC/C,aAAa,SAAS,WAAW,CAAC,WAAW,CAAC,GAAG,WAAW,CAAC,WAAW,CAAC,EAEzE,SAAS,aAAa,KACpB,YAAY,CAAC,WAAW,CA4H1B,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=core.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core.test.d.ts","sourceRoot":"","sources":["../src/core.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,122 @@
1
+ import type { C15TOptions } from '../../../types';
2
+ /**
3
+ * Database interface for Drizzle ORM integration
4
+ *
5
+ * This generic interface represents a Drizzle ORM database connection.
6
+ * It allows the adapter to work with different Drizzle providers.
7
+ *
8
+ * @remarks
9
+ * The interface uses an index signature to allow for dynamic access to
10
+ * the database's properties and methods.
11
+ */
12
+ export interface DB {
13
+ [key: string]: unknown;
14
+ }
15
+ /**
16
+ * Configuration options for the Drizzle adapter
17
+ *
18
+ * @example
19
+ * ```typescript
20
+ * // Basic Drizzle adapter configuration
21
+ * const config: DrizzleAdapterConfig = {
22
+ * provider: 'pg', // PostgreSQL
23
+ * usePlural: true // Use plural table names
24
+ * };
25
+ *
26
+ * // Configuration with explicit schema
27
+ * const configWithSchema: DrizzleAdapterConfig = {
28
+ * provider: 'mysql',
29
+ * schema: {
30
+ * subjects: subjects, // Drizzle schema objects
31
+ * consents: consents,
32
+ * purposes: purposes
33
+ * }
34
+ * };
35
+ * ```
36
+ */
37
+ export interface DrizzleAdapterConfig {
38
+ /**
39
+ * The schema object that defines the tables and fields
40
+ *
41
+ * @remarks
42
+ * If not provided, the adapter will attempt to use `db._.fullSchema`
43
+ */
44
+ schema?: Record<string, unknown>;
45
+ /**
46
+ * The database provider
47
+ *
48
+ * @remarks
49
+ * Different providers have different SQL dialects and features
50
+ */
51
+ provider: 'pg' | 'mysql' | 'sqlite';
52
+ /**
53
+ * If the table names in the schema are plural
54
+ * set this to true. For example, if the schema
55
+ * has an object with a key "subjects" instead of "subject"
56
+ *
57
+ * @default false
58
+ */
59
+ usePlural?: boolean;
60
+ }
61
+ /**
62
+ * Creates a C15T adapter for Drizzle ORM
63
+ *
64
+ * This factory function creates an adapter that allows C15T to use Drizzle ORM
65
+ * as its database layer. It supports PostgreSQL, MySQL, and SQLite.
66
+ *
67
+ * @param db - The Drizzle database instance
68
+ * @param config - Configuration options for the Drizzle adapter
69
+ * @returns A C15T adapter factory function
70
+ *
71
+ * @example
72
+ * ```typescript
73
+ * import { drizzle } from 'drizzle-orm/postgres-js';
74
+ * import postgres from 'postgres';
75
+ * import { drizzleAdapter } from '@c15t/db/adapters/drizzle';
76
+ * import * as schema from './schema';
77
+ * import { c15tInstance } from '@c15t/backend';
78
+ *
79
+ * // Create a Postgres connection
80
+ * const connection = postgres('postgresql://user:password@localhost:5432/db');
81
+ * const db = drizzle(connection, { schema });
82
+ *
83
+ * // Create the C15T instance with Drizzle adapter
84
+ * const c15t = c15tInstance({
85
+ * storage: drizzleAdapter(db, {
86
+ * provider: 'pg',
87
+ * schema, // Pass your Drizzle schema
88
+ * usePlural: true
89
+ * }),
90
+ * // Other C15T options...
91
+ * secret: process.env.SECRET
92
+ * });
93
+ *
94
+ * // Use in your application
95
+ * export default c15tInstance.handler;
96
+ * ```
97
+ *
98
+ * @example
99
+ * ```typescript
100
+ * // Using with MySQL
101
+ * import { drizzle } from 'drizzle-orm/mysql2';
102
+ * import mysql from 'mysql2/promise';
103
+ * import { c15tInstance } from '@c15t/backend';
104
+ *
105
+ * const connection = await mysql.createConnection({
106
+ * host: 'localhost',
107
+ * user: 'root',
108
+ * database: 'c15t'
109
+ * });
110
+ *
111
+ * const db = drizzle(connection);
112
+ *
113
+ * const c15t = c15tInstance({
114
+ * storage: drizzleAdapter(db, {
115
+ * provider: 'mysql'
116
+ * }),
117
+ * secret: process.env.SECRET
118
+ * });
119
+ * ```
120
+ */
121
+ export declare const drizzleAdapter: (db: DB, config: DrizzleAdapterConfig) => (options: C15TOptions) => Adapter;
122
+ //# sourceMappingURL=drizzle-adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"drizzle-adapter.d.ts","sourceRoot":"","sources":["../../../../src/db/adapters/drizzle-adapter/drizzle-adapter.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAW,WAAW,EAAS,MAAM,SAAS,CAAC;AAO3D;;;;;;;;;GASG;AACH,MAAM,WAAW,EAAE;IAClB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACvB;AA+VD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,WAAW,oBAAoB;IACpC;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEjC;;;;;OAKG;IACH,QAAQ,EAAE,IAAI,GAAG,OAAO,GAAG,QAAQ,CAAC;IAEpC;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACpB;AAkCD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2DG;AACH,eAAO,MAAM,cAAc,GACzB,IAAI,EAAE,EAAE,QAAQ,oBAAoB,MAAM,SAAS,WAAW,YAwL9D,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './drizzle-adapter';
2
+ //# sourceMappingURL=index.d.ts.map