@c15t/backend 1.5.0 → 1.6.0

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 (489) hide show
  1. package/.turbo/turbo-build.log +63 -37
  2. package/CHANGELOG.md +4 -209
  3. package/README.md +86 -164
  4. package/dist/contracts/consent/index.d.ts +103 -615
  5. package/dist/contracts/consent/index.d.ts.map +1 -1
  6. package/dist/contracts/consent/post.contract.d.ts +42 -140
  7. package/dist/contracts/consent/post.contract.d.ts.map +1 -1
  8. package/dist/contracts/consent/show-banner.contract.d.ts +28 -376
  9. package/dist/contracts/consent/show-banner.contract.d.ts.map +1 -1
  10. package/dist/contracts/consent/verify.contract.d.ts +33 -99
  11. package/dist/contracts/consent/verify.contract.d.ts.map +1 -1
  12. package/dist/contracts/index.d.ts +222 -1356
  13. package/dist/contracts/index.d.ts.map +1 -1
  14. package/dist/contracts/meta/index.d.ts +8 -63
  15. package/dist/contracts/meta/index.d.ts.map +1 -1
  16. package/dist/contracts/meta/status.contract.d.ts +8 -63
  17. package/dist/contracts/meta/status.contract.d.ts.map +1 -1
  18. package/dist/contracts/shared/jurisdiction.schema.d.ts +21 -9
  19. package/dist/contracts/shared/jurisdiction.schema.d.ts.map +1 -1
  20. package/dist/contracts.cjs +100 -106
  21. package/dist/contracts.js +100 -106
  22. package/dist/core.cjs +681 -681
  23. package/dist/core.d.ts +118 -678
  24. package/dist/core.d.ts.map +1 -1
  25. package/dist/core.js +634 -637
  26. package/dist/handlers/consent/index.d.ts +103 -615
  27. package/dist/handlers/consent/index.d.ts.map +1 -1
  28. package/dist/handlers/consent/post.handler.d.ts +42 -140
  29. package/dist/handlers/consent/post.handler.d.ts.map +1 -1
  30. package/dist/handlers/consent/show-banner/handler.d.ts +28 -376
  31. package/dist/handlers/consent/show-banner/handler.d.ts.map +1 -1
  32. package/dist/handlers/consent/show-banner/translations.d.ts.map +1 -1
  33. package/dist/handlers/consent/verify.handler.d.ts +33 -99
  34. package/dist/handlers/consent/verify.handler.d.ts.map +1 -1
  35. package/dist/handlers/meta/index.d.ts +8 -63
  36. package/dist/handlers/meta/index.d.ts.map +1 -1
  37. package/dist/handlers/meta/status.handler.d.ts +8 -63
  38. package/dist/handlers/meta/status.handler.d.ts.map +1 -1
  39. package/dist/init.d.ts.map +1 -1
  40. package/dist/middleware/openapi/index.d.ts +2 -2
  41. package/dist/middleware/openapi/index.d.ts.map +1 -1
  42. package/dist/pkgs/data-model/fields/index.cjs +14 -26
  43. package/dist/pkgs/data-model/fields/index.d.ts +4 -4
  44. package/dist/pkgs/data-model/fields/index.d.ts.map +1 -1
  45. package/dist/pkgs/data-model/fields/index.js +14 -26
  46. package/dist/pkgs/data-model/fields/zod-fields.d.ts +195 -871
  47. package/dist/pkgs/data-model/fields/zod-fields.d.ts.map +1 -1
  48. package/dist/pkgs/data-model/hooks/index.d.ts +2 -2
  49. package/dist/pkgs/data-model/hooks/index.d.ts.map +1 -1
  50. package/dist/pkgs/data-model/index.cjs +346 -358
  51. package/dist/pkgs/data-model/index.d.ts +1 -1
  52. package/dist/pkgs/data-model/index.d.ts.map +1 -1
  53. package/dist/pkgs/data-model/index.js +345 -357
  54. package/dist/pkgs/data-model/schema/index.cjs +346 -358
  55. package/dist/pkgs/data-model/schema/index.d.ts +1 -1
  56. package/dist/pkgs/data-model/schema/index.d.ts.map +1 -1
  57. package/dist/pkgs/data-model/schema/index.js +345 -357
  58. package/dist/pkgs/data-model/schema/schemas.d.ts +2 -2
  59. package/dist/pkgs/data-model/schema/schemas.d.ts.map +1 -1
  60. package/dist/pkgs/db-adapters/adapters/drizzle-adapter/drizzle-adapter.d.ts +3 -0
  61. package/dist/pkgs/db-adapters/adapters/drizzle-adapter/drizzle-adapter.d.ts.map +1 -1
  62. package/dist/pkgs/db-adapters/adapters/drizzle-adapter/index.cjs +158 -170
  63. package/dist/pkgs/db-adapters/adapters/drizzle-adapter/index.js +157 -169
  64. package/dist/pkgs/db-adapters/adapters/index.d.ts +2 -2
  65. package/dist/pkgs/db-adapters/adapters/index.d.ts.map +1 -1
  66. package/dist/pkgs/db-adapters/adapters/kysely-adapter/index.cjs +215 -227
  67. package/dist/pkgs/db-adapters/adapters/kysely-adapter/index.d.ts +2 -2
  68. package/dist/pkgs/db-adapters/adapters/kysely-adapter/index.d.ts.map +1 -1
  69. package/dist/pkgs/db-adapters/adapters/kysely-adapter/index.js +213 -225
  70. package/dist/pkgs/db-adapters/adapters/kysely-adapter/kysely-adapter.d.ts +2 -0
  71. package/dist/pkgs/db-adapters/adapters/kysely-adapter/kysely-adapter.d.ts.map +1 -1
  72. package/dist/pkgs/db-adapters/adapters/kysely-adapter/tests/test-utils.d.ts +1 -1
  73. package/dist/pkgs/db-adapters/adapters/kysely-adapter/tests/test-utils.d.ts.map +1 -1
  74. package/dist/pkgs/db-adapters/adapters/memory-adapter/index.cjs +158 -170
  75. package/dist/pkgs/db-adapters/adapters/memory-adapter/index.js +157 -169
  76. package/dist/pkgs/db-adapters/adapters/memory-adapter/memory-adapter.d.ts +3 -0
  77. package/dist/pkgs/db-adapters/adapters/memory-adapter/memory-adapter.d.ts.map +1 -1
  78. package/dist/pkgs/db-adapters/adapters/prisma-adapter/index.cjs +243 -255
  79. package/dist/pkgs/db-adapters/adapters/prisma-adapter/index.d.ts +1 -1
  80. package/dist/pkgs/db-adapters/adapters/prisma-adapter/index.d.ts.map +1 -1
  81. package/dist/pkgs/db-adapters/adapters/prisma-adapter/index.js +241 -253
  82. package/dist/pkgs/db-adapters/adapters/prisma-adapter/prisma-adapter.d.ts +3 -0
  83. package/dist/pkgs/db-adapters/adapters/prisma-adapter/prisma-adapter.d.ts.map +1 -1
  84. package/dist/pkgs/db-adapters/index.cjs +714 -726
  85. package/dist/pkgs/db-adapters/index.d.ts +6 -6
  86. package/dist/pkgs/db-adapters/index.d.ts.map +1 -1
  87. package/dist/pkgs/db-adapters/index.js +708 -720
  88. package/dist/pkgs/migrations/get-migration.d.ts.map +1 -1
  89. package/dist/pkgs/migrations/get-schema/get-schema.d.ts.map +1 -1
  90. package/dist/pkgs/migrations/get-schema/process-tables.d.ts.map +1 -1
  91. package/dist/pkgs/migrations/index.cjs +236 -248
  92. package/dist/pkgs/migrations/index.d.ts +4 -4
  93. package/dist/pkgs/migrations/index.d.ts.map +1 -1
  94. package/dist/pkgs/migrations/index.js +235 -247
  95. package/dist/pkgs/results/index.cjs +67 -67
  96. package/dist/pkgs/results/index.d.ts +5 -5
  97. package/dist/pkgs/results/index.d.ts.map +1 -1
  98. package/dist/pkgs/results/index.js +67 -67
  99. package/dist/pkgs/results/orpc-error-handler.d.ts +1 -1
  100. package/dist/pkgs/results/orpc-error-handler.d.ts.map +1 -1
  101. package/dist/pkgs/types/index.d.ts +1 -2
  102. package/dist/pkgs/types/index.d.ts.map +1 -1
  103. package/dist/pkgs/types/options.d.ts +9 -2
  104. package/dist/pkgs/types/options.d.ts.map +1 -1
  105. package/dist/pkgs/utils/index.d.ts +1 -1
  106. package/dist/pkgs/utils/index.d.ts.map +1 -1
  107. package/dist/pkgs/utils/logger.d.ts +1 -1
  108. package/dist/pkgs/utils/logger.d.ts.map +1 -1
  109. package/dist/router.cjs +114 -117
  110. package/dist/router.d.ts +111 -678
  111. package/dist/router.d.ts.map +1 -1
  112. package/dist/router.js +114 -117
  113. package/dist/schema/audit-log/schema.d.ts +2 -24
  114. package/dist/schema/audit-log/schema.d.ts.map +1 -1
  115. package/dist/schema/audit-log/table.d.ts +2 -24
  116. package/dist/schema/audit-log/table.d.ts.map +1 -1
  117. package/dist/schema/consent/registry.d.ts +8 -8
  118. package/dist/schema/consent/schema.d.ts +9 -33
  119. package/dist/schema/consent/schema.d.ts.map +1 -1
  120. package/dist/schema/consent/table.d.ts +9 -33
  121. package/dist/schema/consent/table.d.ts.map +1 -1
  122. package/dist/schema/consent-policy/registry.d.ts +20 -20
  123. package/dist/schema/consent-policy/schema.d.ts +22 -30
  124. package/dist/schema/consent-policy/schema.d.ts.map +1 -1
  125. package/dist/schema/consent-policy/table.d.ts +13 -29
  126. package/dist/schema/consent-policy/table.d.ts.map +1 -1
  127. package/dist/schema/consent-purpose/registry.d.ts +6 -6
  128. package/dist/schema/consent-purpose/schema.d.ts +5 -27
  129. package/dist/schema/consent-purpose/schema.d.ts.map +1 -1
  130. package/dist/schema/consent-purpose/table.d.ts +5 -27
  131. package/dist/schema/consent-purpose/table.d.ts.map +1 -1
  132. package/dist/schema/consent-record/schema.d.ts +3 -19
  133. package/dist/schema/consent-record/schema.d.ts.map +1 -1
  134. package/dist/schema/consent-record/table.d.ts +3 -19
  135. package/dist/schema/consent-record/table.d.ts.map +1 -1
  136. package/dist/schema/create-registry.d.ts +58 -58
  137. package/dist/schema/definition.d.ts +42 -176
  138. package/dist/schema/definition.d.ts.map +1 -1
  139. package/dist/schema/domain/registry.d.ts +20 -20
  140. package/dist/schema/domain/schema.d.ts +6 -24
  141. package/dist/schema/domain/schema.d.ts.map +1 -1
  142. package/dist/schema/domain/table.d.ts +6 -24
  143. package/dist/schema/domain/table.d.ts.map +1 -1
  144. package/dist/schema/index.cjs +426 -438
  145. package/dist/schema/index.d.ts +12 -12
  146. package/dist/schema/index.d.ts.map +1 -1
  147. package/dist/schema/index.js +426 -438
  148. package/dist/schema/schemas.d.ts +42 -176
  149. package/dist/schema/schemas.d.ts.map +1 -1
  150. package/dist/schema/subject/registry.d.ts +4 -4
  151. package/dist/schema/subject/schema.d.ts +4 -20
  152. package/dist/schema/subject/schema.d.ts.map +1 -1
  153. package/dist/schema/subject/table.d.ts +4 -20
  154. package/dist/schema/subject/table.d.ts.map +1 -1
  155. package/dist/schema/types.d.ts +1 -1
  156. package/dist/schema/types.d.ts.map +1 -1
  157. package/dist/testing/contract-testing.d.ts +3 -2
  158. package/dist/testing/contract-testing.d.ts.map +1 -1
  159. package/dist/types/index.d.ts +5 -4
  160. package/dist/types/index.d.ts.map +1 -1
  161. package/dist/types/options.d.ts +2 -2
  162. package/dist/types/options.d.ts.map +1 -1
  163. package/dist/v2/contracts/consent/index.d.ts +260 -0
  164. package/dist/v2/contracts/consent/index.d.ts.map +1 -0
  165. package/dist/v2/contracts/consent/index.test.d.ts +2 -0
  166. package/dist/v2/contracts/consent/index.test.d.ts.map +1 -0
  167. package/dist/v2/contracts/consent/post.contract.d.ts +114 -0
  168. package/dist/v2/contracts/consent/post.contract.d.ts.map +1 -0
  169. package/dist/v2/contracts/consent/post.contract.test.d.ts +2 -0
  170. package/dist/v2/contracts/consent/post.contract.test.d.ts.map +1 -0
  171. package/dist/v2/contracts/consent/show-banner.contract.d.ts +68 -0
  172. package/dist/v2/contracts/consent/show-banner.contract.d.ts.map +1 -0
  173. package/dist/v2/contracts/consent/show-banner.contract.test.d.ts +2 -0
  174. package/dist/v2/contracts/consent/show-banner.contract.test.d.ts.map +1 -0
  175. package/dist/v2/contracts/consent/verify.contract.d.ts +81 -0
  176. package/dist/v2/contracts/consent/verify.contract.d.ts.map +1 -0
  177. package/dist/v2/contracts/consent/verify.contract.test.d.ts +2 -0
  178. package/dist/v2/contracts/consent/verify.contract.test.d.ts.map +1 -0
  179. package/dist/v2/contracts/index.cjs +644 -0
  180. package/dist/v2/contracts/index.d.ts +563 -0
  181. package/dist/v2/contracts/index.d.ts.map +1 -0
  182. package/dist/v2/contracts/index.js +607 -0
  183. package/dist/v2/contracts/meta/index.d.ts +19 -0
  184. package/dist/v2/contracts/meta/index.d.ts.map +1 -0
  185. package/dist/v2/contracts/meta/index.test.d.ts +2 -0
  186. package/dist/v2/contracts/meta/index.test.d.ts.map +1 -0
  187. package/dist/v2/contracts/meta/status.contract.d.ts +18 -0
  188. package/dist/v2/contracts/meta/status.contract.d.ts.map +1 -0
  189. package/dist/v2/contracts/meta/status.contract.test.d.ts +2 -0
  190. package/dist/v2/contracts/meta/status.contract.test.d.ts.map +1 -0
  191. package/dist/v2/contracts/shared/jurisdiction.schema.d.ts +36 -0
  192. package/dist/v2/contracts/shared/jurisdiction.schema.d.ts.map +1 -0
  193. package/dist/v2/contracts/test.utils.d.ts +38 -0
  194. package/dist/v2/contracts/test.utils.d.ts.map +1 -0
  195. package/dist/v2/core.cjs +2181 -0
  196. package/dist/v2/core.d.ts +364 -0
  197. package/dist/v2/core.d.ts.map +1 -0
  198. package/dist/v2/core.js +2130 -0
  199. package/dist/v2/db/adapters/drizzle.cjs +36 -0
  200. package/dist/v2/db/adapters/drizzle.d.ts +2 -0
  201. package/dist/v2/db/adapters/drizzle.d.ts.map +1 -0
  202. package/dist/v2/db/adapters/drizzle.js +3 -0
  203. package/dist/v2/db/adapters/index.cjs +18 -0
  204. package/dist/v2/db/adapters/index.d.ts +2 -0
  205. package/dist/v2/db/adapters/index.d.ts.map +1 -0
  206. package/dist/v2/db/adapters/index.js +0 -0
  207. package/dist/v2/db/adapters/kysely.cjs +36 -0
  208. package/dist/v2/db/adapters/kysely.d.ts +2 -0
  209. package/dist/v2/db/adapters/kysely.d.ts.map +1 -0
  210. package/dist/v2/db/adapters/kysely.js +3 -0
  211. package/dist/v2/db/adapters/mongo.cjs +36 -0
  212. package/dist/v2/db/adapters/mongo.d.ts +2 -0
  213. package/dist/v2/db/adapters/mongo.d.ts.map +1 -0
  214. package/dist/v2/db/adapters/mongo.js +3 -0
  215. package/dist/v2/db/adapters/prisma.cjs +36 -0
  216. package/dist/v2/db/adapters/prisma.d.ts +2 -0
  217. package/dist/v2/db/adapters/prisma.d.ts.map +1 -0
  218. package/dist/v2/db/adapters/prisma.js +3 -0
  219. package/dist/v2/db/adapters/typeorm.cjs +36 -0
  220. package/dist/v2/db/adapters/typeorm.d.ts +2 -0
  221. package/dist/v2/db/adapters/typeorm.d.ts.map +1 -0
  222. package/dist/v2/db/adapters/typeorm.js +3 -0
  223. package/dist/v2/db/migrator/index.cjs +61 -0
  224. package/dist/v2/db/migrator/index.d.ts +29 -0
  225. package/dist/v2/db/migrator/index.d.ts.map +1 -0
  226. package/dist/v2/db/migrator/index.js +27 -0
  227. package/dist/v2/db/registry/audit-log.d.ts +21 -0
  228. package/dist/v2/db/registry/audit-log.d.ts.map +1 -0
  229. package/dist/v2/db/registry/audit-log.test.d.ts +2 -0
  230. package/dist/v2/db/registry/audit-log.test.d.ts.map +1 -0
  231. package/dist/v2/db/registry/consent-policy.d.ts +29 -0
  232. package/dist/v2/db/registry/consent-policy.d.ts.map +1 -0
  233. package/dist/v2/db/registry/consent-policy.test.d.ts +2 -0
  234. package/dist/v2/db/registry/consent-policy.test.d.ts.map +1 -0
  235. package/dist/v2/db/registry/consent-purpose.d.ts +16 -0
  236. package/dist/v2/db/registry/consent-purpose.d.ts.map +1 -0
  237. package/dist/v2/db/registry/consent-purpose.test.d.ts +2 -0
  238. package/dist/v2/db/registry/consent-purpose.test.d.ts.map +1 -0
  239. package/dist/v2/db/registry/consent.d.ts +20 -0
  240. package/dist/v2/db/registry/consent.d.ts.map +1 -0
  241. package/dist/v2/db/registry/consent.test.d.ts +2 -0
  242. package/dist/v2/db/registry/consent.test.d.ts.map +1 -0
  243. package/dist/v2/db/registry/domain.d.ts +24 -0
  244. package/dist/v2/db/registry/domain.d.ts.map +1 -0
  245. package/dist/v2/db/registry/domain.test.d.ts +2 -0
  246. package/dist/v2/db/registry/domain.test.d.ts.map +1 -0
  247. package/dist/v2/db/registry/index.d.ts +102 -0
  248. package/dist/v2/db/registry/index.d.ts.map +1 -0
  249. package/dist/v2/db/registry/subject.d.ts +18 -0
  250. package/dist/v2/db/registry/subject.d.ts.map +1 -0
  251. package/dist/v2/db/registry/subject.test.d.ts +2 -0
  252. package/dist/v2/db/registry/subject.test.d.ts.map +1 -0
  253. package/dist/v2/db/registry/types.d.ts +10 -0
  254. package/dist/v2/db/registry/types.d.ts.map +1 -0
  255. package/dist/v2/db/registry/utils/generate-id.d.ts +25 -0
  256. package/dist/v2/db/registry/utils/generate-id.d.ts.map +1 -0
  257. package/dist/v2/db/registry/utils/generate-id.test.d.ts +2 -0
  258. package/dist/v2/db/registry/utils/generate-id.test.d.ts.map +1 -0
  259. package/dist/v2/db/registry/utils.d.ts +25 -0
  260. package/dist/v2/db/registry/utils.d.ts.map +1 -0
  261. package/dist/v2/db/schema/1.0.0/audit-log.d.ts +29 -0
  262. package/dist/v2/db/schema/1.0.0/audit-log.d.ts.map +1 -0
  263. package/dist/v2/db/schema/1.0.0/consent-policy.d.ts +45 -0
  264. package/dist/v2/db/schema/1.0.0/consent-policy.d.ts.map +1 -0
  265. package/dist/v2/db/schema/1.0.0/consent-purpose.d.ts +27 -0
  266. package/dist/v2/db/schema/1.0.0/consent-purpose.d.ts.map +1 -0
  267. package/dist/v2/db/schema/1.0.0/consent-record.d.ts +19 -0
  268. package/dist/v2/db/schema/1.0.0/consent-record.d.ts.map +1 -0
  269. package/dist/v2/db/schema/1.0.0/consent.d.ts +42 -0
  270. package/dist/v2/db/schema/1.0.0/consent.d.ts.map +1 -0
  271. package/dist/v2/db/schema/1.0.0/domain.d.ts +23 -0
  272. package/dist/v2/db/schema/1.0.0/domain.d.ts.map +1 -0
  273. package/dist/v2/db/schema/1.0.0/index.d.ts +1513 -0
  274. package/dist/v2/db/schema/1.0.0/index.d.ts.map +1 -0
  275. package/dist/v2/db/schema/1.0.0/subject.d.ts +23 -0
  276. package/dist/v2/db/schema/1.0.0/subject.d.ts.map +1 -0
  277. package/dist/v2/db/schema/index.cjs +326 -0
  278. package/dist/v2/db/schema/index.d.ts +1507 -0
  279. package/dist/v2/db/schema/index.d.ts.map +1 -0
  280. package/dist/v2/db/schema/index.js +241 -0
  281. package/dist/v2/define-config.cjs +36 -0
  282. package/dist/v2/define-config.d.ts +5 -0
  283. package/dist/v2/define-config.d.ts.map +1 -0
  284. package/dist/v2/define-config.js +2 -0
  285. package/dist/v2/handlers/consent/index.d.ts +260 -0
  286. package/dist/v2/handlers/consent/index.d.ts.map +1 -0
  287. package/dist/v2/handlers/consent/post.handler.d.ts +136 -0
  288. package/dist/v2/handlers/consent/post.handler.d.ts.map +1 -0
  289. package/dist/v2/handlers/consent/show-banner/geo.d.ts +10 -0
  290. package/dist/v2/handlers/consent/show-banner/geo.d.ts.map +1 -0
  291. package/dist/v2/handlers/consent/show-banner/geo.test.d.ts +2 -0
  292. package/dist/v2/handlers/consent/show-banner/geo.test.d.ts.map +1 -0
  293. package/dist/v2/handlers/consent/show-banner/handler.d.ts +71 -0
  294. package/dist/v2/handlers/consent/show-banner/handler.d.ts.map +1 -0
  295. package/dist/v2/handlers/consent/show-banner/handler.test.d.ts +2 -0
  296. package/dist/v2/handlers/consent/show-banner/handler.test.d.ts.map +1 -0
  297. package/dist/v2/handlers/consent/show-banner/translations.d.ts +13 -0
  298. package/dist/v2/handlers/consent/show-banner/translations.d.ts.map +1 -0
  299. package/dist/v2/handlers/consent/show-banner/translations.test.d.ts +2 -0
  300. package/dist/v2/handlers/consent/show-banner/translations.test.d.ts.map +1 -0
  301. package/dist/v2/handlers/consent/verify.handler.d.ts +103 -0
  302. package/dist/v2/handlers/consent/verify.handler.d.ts.map +1 -0
  303. package/dist/v2/handlers/meta/index.d.ts +19 -0
  304. package/dist/v2/handlers/meta/index.d.ts.map +1 -0
  305. package/dist/v2/handlers/meta/status.handler.d.ts +17 -0
  306. package/dist/v2/handlers/meta/status.handler.d.ts.map +1 -0
  307. package/dist/v2/init.d.ts +3 -0
  308. package/dist/v2/init.d.ts.map +1 -0
  309. package/dist/v2/init.test.d.ts +2 -0
  310. package/dist/v2/init.test.d.ts.map +1 -0
  311. package/dist/v2/middleware/cors/cors.d.ts +37 -0
  312. package/dist/v2/middleware/cors/cors.d.ts.map +1 -0
  313. package/dist/v2/middleware/cors/cors.test.d.ts +2 -0
  314. package/dist/v2/middleware/cors/cors.test.d.ts.map +1 -0
  315. package/dist/v2/middleware/cors/index.d.ts +30 -0
  316. package/dist/v2/middleware/cors/index.d.ts.map +1 -0
  317. package/dist/v2/middleware/cors/is-origin-trusted.d.ts +49 -0
  318. package/dist/v2/middleware/cors/is-origin-trusted.d.ts.map +1 -0
  319. package/dist/v2/middleware/cors/is-origin-trusted.test.d.ts +2 -0
  320. package/dist/v2/middleware/cors/is-origin-trusted.test.d.ts.map +1 -0
  321. package/dist/v2/middleware/cors/process-cors.d.ts +31 -0
  322. package/dist/v2/middleware/cors/process-cors.d.ts.map +1 -0
  323. package/dist/v2/middleware/openapi/config.d.ts +28 -0
  324. package/dist/v2/middleware/openapi/config.d.ts.map +1 -0
  325. package/dist/v2/middleware/openapi/handlers.d.ts +29 -0
  326. package/dist/v2/middleware/openapi/handlers.d.ts.map +1 -0
  327. package/dist/v2/middleware/openapi/index.d.ts +11 -0
  328. package/dist/v2/middleware/openapi/index.d.ts.map +1 -0
  329. package/dist/v2/middleware/process-ip/index.d.ts +3 -0
  330. package/dist/v2/middleware/process-ip/index.d.ts.map +1 -0
  331. package/dist/v2/router.cjs +1275 -0
  332. package/dist/v2/router.d.ts +280 -0
  333. package/dist/v2/router.d.ts.map +1 -0
  334. package/dist/v2/router.js +1231 -0
  335. package/dist/v2/types/api.d.ts +27 -0
  336. package/dist/v2/types/api.d.ts.map +1 -0
  337. package/dist/v2/types/index.cjs +40 -0
  338. package/dist/v2/types/index.d.ts +104 -0
  339. package/dist/v2/types/index.d.ts.map +1 -0
  340. package/dist/v2/types/index.js +6 -0
  341. package/dist/v2/utils/create-telemetry-options.d.ts +28 -0
  342. package/dist/v2/utils/create-telemetry-options.d.ts.map +1 -0
  343. package/dist/v2/utils/env.d.ts +60 -0
  344. package/dist/v2/utils/env.d.ts.map +1 -0
  345. package/dist/v2/utils/index.d.ts +3 -0
  346. package/dist/v2/utils/index.d.ts.map +1 -0
  347. package/dist/v2/utils/logger.d.ts +16 -0
  348. package/dist/v2/utils/logger.d.ts.map +1 -0
  349. package/dist/version.d.ts +1 -1
  350. package/package.json +106 -15
  351. package/readme.json +30 -0
  352. package/rslib.config.ts +13 -14
  353. package/src/__tests__/server.test.ts +1 -1
  354. package/src/contracts/consent/post.contract.test.ts +3 -8
  355. package/src/contracts/consent/post.contract.ts +13 -13
  356. package/src/contracts/consent/show-banner.contract.test.ts +9 -0
  357. package/src/contracts/consent/show-banner.contract.ts +2 -0
  358. package/src/contracts/consent/verify.contract.ts +19 -23
  359. package/src/core.ts +7 -0
  360. package/src/handlers/consent/show-banner/handler.ts +12 -9
  361. package/src/handlers/consent/show-banner/translations.ts +2 -2
  362. package/src/init.ts +9 -6
  363. package/src/middleware/openapi/index.ts +2 -2
  364. package/src/pkgs/api-router/hooks/__tests__/processor.test.ts +1 -1
  365. package/src/pkgs/data-model/fields/index.ts +17 -22
  366. package/src/pkgs/data-model/fields/zod-fields.ts +14 -26
  367. package/src/pkgs/data-model/hooks/index.ts +3 -2
  368. package/src/pkgs/data-model/index.ts +2 -4
  369. package/src/pkgs/data-model/schema/index.ts +6 -7
  370. package/src/pkgs/data-model/schema/schemas.ts +3 -3
  371. package/src/pkgs/db-adapters/adapters/drizzle-adapter/drizzle-adapter.ts +4 -1
  372. package/src/pkgs/db-adapters/adapters/index.ts +2 -2
  373. package/src/pkgs/db-adapters/adapters/kysely-adapter/index.ts +4 -4
  374. package/src/pkgs/db-adapters/adapters/kysely-adapter/kysely-adapter.ts +4 -5
  375. package/src/pkgs/db-adapters/adapters/kysely-adapter/tests/postgres.test.ts +2 -4
  376. package/src/pkgs/db-adapters/adapters/kysely-adapter/tests/sqlite.test.ts +2 -3
  377. package/src/pkgs/db-adapters/adapters/kysely-adapter/tests/test-utils.ts +1 -6
  378. package/src/pkgs/db-adapters/adapters/memory-adapter/memory-adapter.ts +4 -1
  379. package/src/pkgs/db-adapters/adapters/prisma-adapter/index.ts +1 -1
  380. package/src/pkgs/db-adapters/adapters/prisma-adapter/prisma-adapter.ts +5 -2
  381. package/src/pkgs/db-adapters/index.ts +12 -13
  382. package/src/pkgs/migrations/get-migration.ts +4 -2
  383. package/src/pkgs/migrations/get-schema/get-schema.ts +0 -1
  384. package/src/pkgs/migrations/get-schema/process-fields.ts +1 -1
  385. package/src/pkgs/migrations/get-schema/process-tables.ts +0 -2
  386. package/src/pkgs/migrations/index.ts +7 -8
  387. package/src/pkgs/results/__tests__/error-codes.test.ts +2 -2
  388. package/src/pkgs/results/index.ts +22 -27
  389. package/src/pkgs/results/orpc-error-handler.ts +1 -1
  390. package/src/pkgs/results/results/result-helpers.ts +1 -1
  391. package/src/pkgs/types/index.ts +4 -4
  392. package/src/pkgs/types/options.ts +10 -3
  393. package/src/pkgs/utils/index.ts +1 -1
  394. package/src/pkgs/utils/logger.ts +1 -1
  395. package/src/schema/audit-log/schema.ts +3 -3
  396. package/src/schema/consent/schema.ts +4 -4
  397. package/src/schema/consent-policy/schema.ts +3 -3
  398. package/src/schema/consent-purpose/schema.ts +4 -4
  399. package/src/schema/consent-record/schema.ts +3 -3
  400. package/src/schema/definition.ts +1 -1
  401. package/src/schema/domain/schema.ts +5 -5
  402. package/src/schema/index.ts +14 -17
  403. package/src/schema/subject/schema.ts +3 -3
  404. package/src/schema/types.ts +1 -1
  405. package/src/testing/contract-testing.ts +15 -52
  406. package/src/types/index.ts +8 -8
  407. package/src/types/options.ts +2 -3
  408. package/src/v2/contracts/consent/index.test.ts +5 -0
  409. package/src/v2/contracts/consent/index.ts +9 -0
  410. package/src/v2/contracts/consent/post.contract.test.ts +521 -0
  411. package/src/v2/contracts/consent/post.contract.ts +155 -0
  412. package/src/v2/contracts/consent/show-banner.contract.test.ts +252 -0
  413. package/src/v2/contracts/consent/show-banner.contract.ts +73 -0
  414. package/src/v2/contracts/consent/verify.contract.test.ts +185 -0
  415. package/src/v2/contracts/consent/verify.contract.ts +122 -0
  416. package/src/v2/contracts/index.ts +20 -0
  417. package/src/v2/contracts/meta/index.test.ts +5 -0
  418. package/src/v2/contracts/meta/index.ts +5 -0
  419. package/src/v2/contracts/meta/status.contract.test.ts +226 -0
  420. package/src/v2/contracts/meta/status.contract.ts +34 -0
  421. package/src/v2/contracts/shared/jurisdiction.schema.ts +30 -0
  422. package/src/v2/contracts/test.utils.ts +400 -0
  423. package/src/v2/core.ts +379 -0
  424. package/src/v2/db/adapters/drizzle.ts +1 -0
  425. package/src/v2/db/adapters/index.ts +1 -0
  426. package/src/v2/db/adapters/kysely.ts +1 -0
  427. package/src/v2/db/adapters/mongo.ts +1 -0
  428. package/src/v2/db/adapters/prisma.ts +1 -0
  429. package/src/v2/db/adapters/typeorm.ts +1 -0
  430. package/src/v2/db/migrator/index.ts +80 -0
  431. package/src/v2/db/registry/audit-log.test.ts +77 -0
  432. package/src/v2/db/registry/audit-log.ts +46 -0
  433. package/src/v2/db/registry/consent-policy.test.ts +778 -0
  434. package/src/v2/db/registry/consent-policy.ts +74 -0
  435. package/src/v2/db/registry/consent-purpose.test.ts +485 -0
  436. package/src/v2/db/registry/consent-purpose.ts +41 -0
  437. package/src/v2/db/registry/consent.test.ts +843 -0
  438. package/src/v2/db/registry/consent.ts +42 -0
  439. package/src/v2/db/registry/domain.test.ts +463 -0
  440. package/src/v2/db/registry/domain.ts +51 -0
  441. package/src/v2/db/registry/index.ts +18 -0
  442. package/src/v2/db/registry/subject.test.ts +497 -0
  443. package/src/v2/db/registry/subject.ts +101 -0
  444. package/src/v2/db/registry/types.ts +10 -0
  445. package/src/v2/db/registry/utils/generate-id.test.ts +217 -0
  446. package/src/v2/db/registry/utils/generate-id.ts +134 -0
  447. package/src/v2/db/registry/utils.ts +134 -0
  448. package/src/v2/db/schema/1.0.0/audit-log.ts +32 -0
  449. package/src/v2/db/schema/1.0.0/consent-policy.ts +41 -0
  450. package/src/v2/db/schema/1.0.0/consent-purpose.ts +30 -0
  451. package/src/v2/db/schema/1.0.0/consent-record.ts +22 -0
  452. package/src/v2/db/schema/1.0.0/consent.ts +38 -0
  453. package/src/v2/db/schema/1.0.0/domain.ts +26 -0
  454. package/src/v2/db/schema/1.0.0/index.ts +56 -0
  455. package/src/v2/db/schema/1.0.0/subject.ts +26 -0
  456. package/src/v2/db/schema/index.ts +9 -0
  457. package/src/v2/define-config.ts +5 -0
  458. package/src/v2/handlers/consent/index.ts +9 -0
  459. package/src/v2/handlers/consent/post.handler.ts +254 -0
  460. package/src/v2/handlers/consent/show-banner/geo.test.ts +281 -0
  461. package/src/v2/handlers/consent/show-banner/geo.ts +96 -0
  462. package/src/v2/handlers/consent/show-banner/handler.test.ts +374 -0
  463. package/src/v2/handlers/consent/show-banner/handler.ts +123 -0
  464. package/src/v2/handlers/consent/show-banner/translations.test.ts +121 -0
  465. package/src/v2/handlers/consent/show-banner/translations.ts +79 -0
  466. package/src/v2/handlers/consent/verify.handler.ts +288 -0
  467. package/src/v2/handlers/meta/index.ts +5 -0
  468. package/src/v2/handlers/meta/status.handler.ts +43 -0
  469. package/src/v2/init.test.ts +114 -0
  470. package/src/v2/init.ts +126 -0
  471. package/src/v2/middleware/cors/cors.test.ts +111 -0
  472. package/src/v2/middleware/cors/cors.ts +192 -0
  473. package/src/v2/middleware/cors/index.ts +30 -0
  474. package/src/v2/middleware/cors/is-origin-trusted.test.ts +104 -0
  475. package/src/v2/middleware/cors/is-origin-trusted.ts +126 -0
  476. package/src/v2/middleware/cors/process-cors.ts +91 -0
  477. package/src/v2/middleware/openapi/config.ts +27 -0
  478. package/src/v2/middleware/openapi/handlers.ts +132 -0
  479. package/src/v2/middleware/openapi/index.ts +11 -0
  480. package/src/v2/middleware/process-ip/index.ts +39 -0
  481. package/src/v2/router.ts +8 -0
  482. package/src/v2/types/api.ts +32 -0
  483. package/src/v2/types/index.ts +121 -0
  484. package/src/v2/utils/create-telemetry-options.ts +115 -0
  485. package/src/v2/utils/env.ts +84 -0
  486. package/src/v2/utils/index.ts +2 -0
  487. package/src/v2/utils/logger.ts +38 -0
  488. package/src/version.ts +1 -1
  489. package/vitest.config.ts +11 -2
@@ -0,0 +1,607 @@
1
+ import * as __WEBPACK_EXTERNAL_MODULE__orpc_server_0dae8408__ from "@orpc/server";
2
+ import * as __WEBPACK_EXTERNAL_MODULE__orpc_contract_5a058524__ from "@orpc/contract";
3
+ import * as __WEBPACK_EXTERNAL_MODULE_zod__ from "zod";
4
+ import * as __WEBPACK_EXTERNAL_MODULE_fumadb__ from "fumadb";
5
+ import * as __WEBPACK_EXTERNAL_MODULE_fumadb_schema_96658f6d__ from "fumadb/schema";
6
+ const auditLogTable = (0, __WEBPACK_EXTERNAL_MODULE_fumadb_schema_96658f6d__.table)('auditLog', {
7
+ id: (0, __WEBPACK_EXTERNAL_MODULE_fumadb_schema_96658f6d__.idColumn)('id', 'varchar(255)'),
8
+ entityType: (0, __WEBPACK_EXTERNAL_MODULE_fumadb_schema_96658f6d__.column)('entityType', 'string'),
9
+ entityId: (0, __WEBPACK_EXTERNAL_MODULE_fumadb_schema_96658f6d__.column)('entityId', 'string'),
10
+ actionType: (0, __WEBPACK_EXTERNAL_MODULE_fumadb_schema_96658f6d__.column)('actionType', 'string'),
11
+ subjectId: (0, __WEBPACK_EXTERNAL_MODULE_fumadb_schema_96658f6d__.column)('subjectId', 'string').nullable(),
12
+ ipAddress: (0, __WEBPACK_EXTERNAL_MODULE_fumadb_schema_96658f6d__.column)('ipAddress', 'string').nullable(),
13
+ userAgent: (0, __WEBPACK_EXTERNAL_MODULE_fumadb_schema_96658f6d__.column)('userAgent', 'string').nullable(),
14
+ changes: (0, __WEBPACK_EXTERNAL_MODULE_fumadb_schema_96658f6d__.column)('changes', 'json').nullable(),
15
+ metadata: (0, __WEBPACK_EXTERNAL_MODULE_fumadb_schema_96658f6d__.column)('metadata', 'json').nullable(),
16
+ createdAt: (0, __WEBPACK_EXTERNAL_MODULE_fumadb_schema_96658f6d__.column)('createdAt', 'timestamp').defaultTo$('now'),
17
+ eventTimezone: (0, __WEBPACK_EXTERNAL_MODULE_fumadb_schema_96658f6d__.column)('eventTimezone', 'string').defaultTo$(()=>'UTC')
18
+ });
19
+ __WEBPACK_EXTERNAL_MODULE_zod__.z.object({
20
+ id: __WEBPACK_EXTERNAL_MODULE_zod__.z.string(),
21
+ entityType: __WEBPACK_EXTERNAL_MODULE_zod__.z.string(),
22
+ entityId: __WEBPACK_EXTERNAL_MODULE_zod__.z.string(),
23
+ actionType: __WEBPACK_EXTERNAL_MODULE_zod__.z.string(),
24
+ subjectId: __WEBPACK_EXTERNAL_MODULE_zod__.z.string().optional(),
25
+ ipAddress: __WEBPACK_EXTERNAL_MODULE_zod__.z.string().optional(),
26
+ userAgent: __WEBPACK_EXTERNAL_MODULE_zod__.z.string().optional(),
27
+ changes: __WEBPACK_EXTERNAL_MODULE_zod__.z.record(__WEBPACK_EXTERNAL_MODULE_zod__.z.string(), __WEBPACK_EXTERNAL_MODULE_zod__.z.unknown()).optional(),
28
+ metadata: __WEBPACK_EXTERNAL_MODULE_zod__.z.record(__WEBPACK_EXTERNAL_MODULE_zod__.z.string(), __WEBPACK_EXTERNAL_MODULE_zod__.z.unknown()).optional(),
29
+ createdAt: __WEBPACK_EXTERNAL_MODULE_zod__.z.date().prefault(()=>new Date()),
30
+ eventTimezone: __WEBPACK_EXTERNAL_MODULE_zod__.z.string().prefault('UTC')
31
+ });
32
+ const consentTable = (0, __WEBPACK_EXTERNAL_MODULE_fumadb_schema_96658f6d__.table)('consent', {
33
+ id: (0, __WEBPACK_EXTERNAL_MODULE_fumadb_schema_96658f6d__.idColumn)('id', 'varchar(255)'),
34
+ subjectId: (0, __WEBPACK_EXTERNAL_MODULE_fumadb_schema_96658f6d__.column)('subjectId', 'string'),
35
+ domainId: (0, __WEBPACK_EXTERNAL_MODULE_fumadb_schema_96658f6d__.column)('domainId', 'string'),
36
+ policyId: (0, __WEBPACK_EXTERNAL_MODULE_fumadb_schema_96658f6d__.column)('policyId', 'string').nullable(),
37
+ purposeIds: (0, __WEBPACK_EXTERNAL_MODULE_fumadb_schema_96658f6d__.column)('purposeIds', 'json'),
38
+ metadata: (0, __WEBPACK_EXTERNAL_MODULE_fumadb_schema_96658f6d__.column)('metadata', 'json').nullable(),
39
+ ipAddress: (0, __WEBPACK_EXTERNAL_MODULE_fumadb_schema_96658f6d__.column)('ipAddress', 'string').nullable(),
40
+ userAgent: (0, __WEBPACK_EXTERNAL_MODULE_fumadb_schema_96658f6d__.column)('userAgent', 'string').nullable(),
41
+ status: (0, __WEBPACK_EXTERNAL_MODULE_fumadb_schema_96658f6d__.column)('status', 'string').defaultTo$(()=>'active'),
42
+ withdrawalReason: (0, __WEBPACK_EXTERNAL_MODULE_fumadb_schema_96658f6d__.column)('withdrawalReason', 'string').nullable(),
43
+ givenAt: (0, __WEBPACK_EXTERNAL_MODULE_fumadb_schema_96658f6d__.column)('givenAt', 'timestamp').defaultTo$('now'),
44
+ validUntil: (0, __WEBPACK_EXTERNAL_MODULE_fumadb_schema_96658f6d__.column)('validUntil', 'timestamp').nullable(),
45
+ isActive: (0, __WEBPACK_EXTERNAL_MODULE_fumadb_schema_96658f6d__.column)('isActive', 'bool').defaultTo$(()=>true)
46
+ });
47
+ const consentStatusSchema = __WEBPACK_EXTERNAL_MODULE_zod__.z["enum"]([
48
+ 'active',
49
+ 'withdrawn',
50
+ 'expired'
51
+ ]);
52
+ __WEBPACK_EXTERNAL_MODULE_zod__.z.object({
53
+ id: __WEBPACK_EXTERNAL_MODULE_zod__.z.string(),
54
+ subjectId: __WEBPACK_EXTERNAL_MODULE_zod__.z.string(),
55
+ domainId: __WEBPACK_EXTERNAL_MODULE_zod__.z.string(),
56
+ purposeIds: __WEBPACK_EXTERNAL_MODULE_zod__.z.array(__WEBPACK_EXTERNAL_MODULE_zod__.z.string()),
57
+ metadata: __WEBPACK_EXTERNAL_MODULE_zod__.z.record(__WEBPACK_EXTERNAL_MODULE_zod__.z.string(), __WEBPACK_EXTERNAL_MODULE_zod__.z.unknown()).nullish(),
58
+ policyId: __WEBPACK_EXTERNAL_MODULE_zod__.z.string().optional(),
59
+ ipAddress: __WEBPACK_EXTERNAL_MODULE_zod__.z.string().nullish(),
60
+ userAgent: __WEBPACK_EXTERNAL_MODULE_zod__.z.string().nullish(),
61
+ status: consentStatusSchema.prefault('active'),
62
+ withdrawalReason: __WEBPACK_EXTERNAL_MODULE_zod__.z.string().nullish(),
63
+ givenAt: __WEBPACK_EXTERNAL_MODULE_zod__.z.date().prefault(()=>new Date()),
64
+ validUntil: __WEBPACK_EXTERNAL_MODULE_zod__.z.date().nullish(),
65
+ isActive: __WEBPACK_EXTERNAL_MODULE_zod__.z.boolean().prefault(true)
66
+ });
67
+ const consentPolicyTable = (0, __WEBPACK_EXTERNAL_MODULE_fumadb_schema_96658f6d__.table)('consentPolicy', {
68
+ id: (0, __WEBPACK_EXTERNAL_MODULE_fumadb_schema_96658f6d__.idColumn)('id', 'varchar(255)'),
69
+ version: (0, __WEBPACK_EXTERNAL_MODULE_fumadb_schema_96658f6d__.column)('version', 'string'),
70
+ type: (0, __WEBPACK_EXTERNAL_MODULE_fumadb_schema_96658f6d__.column)('type', 'string'),
71
+ name: (0, __WEBPACK_EXTERNAL_MODULE_fumadb_schema_96658f6d__.column)('name', 'string'),
72
+ effectiveDate: (0, __WEBPACK_EXTERNAL_MODULE_fumadb_schema_96658f6d__.column)('effectiveDate', 'timestamp'),
73
+ expirationDate: (0, __WEBPACK_EXTERNAL_MODULE_fumadb_schema_96658f6d__.column)('expirationDate', 'timestamp').nullable(),
74
+ content: (0, __WEBPACK_EXTERNAL_MODULE_fumadb_schema_96658f6d__.column)('content', 'string'),
75
+ contentHash: (0, __WEBPACK_EXTERNAL_MODULE_fumadb_schema_96658f6d__.column)('contentHash', 'string'),
76
+ isActive: (0, __WEBPACK_EXTERNAL_MODULE_fumadb_schema_96658f6d__.column)('isActive', 'bool').defaultTo$(()=>true),
77
+ createdAt: (0, __WEBPACK_EXTERNAL_MODULE_fumadb_schema_96658f6d__.column)('createdAt', 'timestamp').defaultTo$('now')
78
+ });
79
+ const PolicyTypeSchema = __WEBPACK_EXTERNAL_MODULE_zod__.z["enum"]([
80
+ 'cookie_banner',
81
+ 'privacy_policy',
82
+ 'dpa',
83
+ 'terms_and_conditions',
84
+ 'marketing_communications',
85
+ 'age_verification',
86
+ 'other'
87
+ ]);
88
+ __WEBPACK_EXTERNAL_MODULE_zod__.z.object({
89
+ id: __WEBPACK_EXTERNAL_MODULE_zod__.z.string(),
90
+ version: __WEBPACK_EXTERNAL_MODULE_zod__.z.string(),
91
+ type: PolicyTypeSchema,
92
+ name: __WEBPACK_EXTERNAL_MODULE_zod__.z.string(),
93
+ effectiveDate: __WEBPACK_EXTERNAL_MODULE_zod__.z.date(),
94
+ expirationDate: __WEBPACK_EXTERNAL_MODULE_zod__.z.date().nullish(),
95
+ content: __WEBPACK_EXTERNAL_MODULE_zod__.z.string(),
96
+ contentHash: __WEBPACK_EXTERNAL_MODULE_zod__.z.string(),
97
+ isActive: __WEBPACK_EXTERNAL_MODULE_zod__.z.boolean().prefault(true),
98
+ createdAt: __WEBPACK_EXTERNAL_MODULE_zod__.z.date().prefault(()=>new Date())
99
+ });
100
+ const consentPurposeTable = (0, __WEBPACK_EXTERNAL_MODULE_fumadb_schema_96658f6d__.table)('consentPurpose', {
101
+ id: (0, __WEBPACK_EXTERNAL_MODULE_fumadb_schema_96658f6d__.idColumn)('id', 'varchar(255)'),
102
+ code: (0, __WEBPACK_EXTERNAL_MODULE_fumadb_schema_96658f6d__.column)('code', 'string'),
103
+ name: (0, __WEBPACK_EXTERNAL_MODULE_fumadb_schema_96658f6d__.column)('name', 'string'),
104
+ description: (0, __WEBPACK_EXTERNAL_MODULE_fumadb_schema_96658f6d__.column)("description", 'string'),
105
+ isEssential: (0, __WEBPACK_EXTERNAL_MODULE_fumadb_schema_96658f6d__.column)('isEssential', 'bool'),
106
+ dataCategory: (0, __WEBPACK_EXTERNAL_MODULE_fumadb_schema_96658f6d__.column)('dataCategory', 'string').nullable(),
107
+ legalBasis: (0, __WEBPACK_EXTERNAL_MODULE_fumadb_schema_96658f6d__.column)('legalBasis', 'string').nullable(),
108
+ isActive: (0, __WEBPACK_EXTERNAL_MODULE_fumadb_schema_96658f6d__.column)('isActive', 'bool').defaultTo$(()=>true),
109
+ createdAt: (0, __WEBPACK_EXTERNAL_MODULE_fumadb_schema_96658f6d__.column)('createdAt', 'timestamp').defaultTo$('now'),
110
+ updatedAt: (0, __WEBPACK_EXTERNAL_MODULE_fumadb_schema_96658f6d__.column)('updatedAt', 'timestamp').defaultTo$('now')
111
+ });
112
+ __WEBPACK_EXTERNAL_MODULE_zod__.z.object({
113
+ id: __WEBPACK_EXTERNAL_MODULE_zod__.z.string(),
114
+ code: __WEBPACK_EXTERNAL_MODULE_zod__.z.string(),
115
+ name: __WEBPACK_EXTERNAL_MODULE_zod__.z.string(),
116
+ description: __WEBPACK_EXTERNAL_MODULE_zod__.z.string(),
117
+ isEssential: __WEBPACK_EXTERNAL_MODULE_zod__.z.boolean(),
118
+ dataCategory: __WEBPACK_EXTERNAL_MODULE_zod__.z.string().nullish(),
119
+ legalBasis: __WEBPACK_EXTERNAL_MODULE_zod__.z.string().nullish(),
120
+ isActive: __WEBPACK_EXTERNAL_MODULE_zod__.z.boolean().prefault(true),
121
+ createdAt: __WEBPACK_EXTERNAL_MODULE_zod__.z.date().prefault(()=>new Date()),
122
+ updatedAt: __WEBPACK_EXTERNAL_MODULE_zod__.z.date().prefault(()=>new Date())
123
+ });
124
+ const consentRecordTable = (0, __WEBPACK_EXTERNAL_MODULE_fumadb_schema_96658f6d__.table)('consentRecord', {
125
+ id: (0, __WEBPACK_EXTERNAL_MODULE_fumadb_schema_96658f6d__.idColumn)('id', 'varchar(255)'),
126
+ subjectId: (0, __WEBPACK_EXTERNAL_MODULE_fumadb_schema_96658f6d__.column)('subjectId', 'string'),
127
+ consentId: (0, __WEBPACK_EXTERNAL_MODULE_fumadb_schema_96658f6d__.column)('consentId', 'string').nullable(),
128
+ actionType: (0, __WEBPACK_EXTERNAL_MODULE_fumadb_schema_96658f6d__.column)('actionType', 'string'),
129
+ details: (0, __WEBPACK_EXTERNAL_MODULE_fumadb_schema_96658f6d__.column)('details', 'json').nullable(),
130
+ createdAt: (0, __WEBPACK_EXTERNAL_MODULE_fumadb_schema_96658f6d__.column)('createdAt', 'timestamp').defaultTo$('now')
131
+ });
132
+ __WEBPACK_EXTERNAL_MODULE_zod__.z.object({
133
+ id: __WEBPACK_EXTERNAL_MODULE_zod__.z.string(),
134
+ subjectId: __WEBPACK_EXTERNAL_MODULE_zod__.z.string(),
135
+ consentId: __WEBPACK_EXTERNAL_MODULE_zod__.z.string().nullish(),
136
+ actionType: __WEBPACK_EXTERNAL_MODULE_zod__.z.string(),
137
+ details: __WEBPACK_EXTERNAL_MODULE_zod__.z.record(__WEBPACK_EXTERNAL_MODULE_zod__.z.string(), __WEBPACK_EXTERNAL_MODULE_zod__.z.unknown()).nullish(),
138
+ createdAt: __WEBPACK_EXTERNAL_MODULE_zod__.z.date().prefault(()=>new Date())
139
+ });
140
+ const domainTable = (0, __WEBPACK_EXTERNAL_MODULE_fumadb_schema_96658f6d__.table)('domain', {
141
+ id: (0, __WEBPACK_EXTERNAL_MODULE_fumadb_schema_96658f6d__.idColumn)('id', 'varchar(255)'),
142
+ name: (0, __WEBPACK_EXTERNAL_MODULE_fumadb_schema_96658f6d__.column)('name', 'string').unique(),
143
+ description: (0, __WEBPACK_EXTERNAL_MODULE_fumadb_schema_96658f6d__.column)("description", 'string').nullable(),
144
+ allowedOrigins: (0, __WEBPACK_EXTERNAL_MODULE_fumadb_schema_96658f6d__.column)('allowedOrigins', 'json').nullable(),
145
+ isVerified: (0, __WEBPACK_EXTERNAL_MODULE_fumadb_schema_96658f6d__.column)('isVerified', 'bool').defaultTo$(()=>true),
146
+ isActive: (0, __WEBPACK_EXTERNAL_MODULE_fumadb_schema_96658f6d__.column)('isActive', 'bool').defaultTo$(()=>true),
147
+ createdAt: (0, __WEBPACK_EXTERNAL_MODULE_fumadb_schema_96658f6d__.column)('createdAt', 'timestamp').defaultTo$('now'),
148
+ updatedAt: (0, __WEBPACK_EXTERNAL_MODULE_fumadb_schema_96658f6d__.column)('updatedAt', 'timestamp').defaultTo$('now')
149
+ });
150
+ __WEBPACK_EXTERNAL_MODULE_zod__.z.object({
151
+ id: __WEBPACK_EXTERNAL_MODULE_zod__.z.string(),
152
+ name: __WEBPACK_EXTERNAL_MODULE_zod__.z.string(),
153
+ description: __WEBPACK_EXTERNAL_MODULE_zod__.z.string().nullish(),
154
+ allowedOrigins: __WEBPACK_EXTERNAL_MODULE_zod__.z.array(__WEBPACK_EXTERNAL_MODULE_zod__.z.string()).nullish(),
155
+ isVerified: __WEBPACK_EXTERNAL_MODULE_zod__.z.boolean().prefault(true),
156
+ isActive: __WEBPACK_EXTERNAL_MODULE_zod__.z.boolean().prefault(true),
157
+ createdAt: __WEBPACK_EXTERNAL_MODULE_zod__.z.date().prefault(()=>new Date()),
158
+ updatedAt: __WEBPACK_EXTERNAL_MODULE_zod__.z.date().prefault(()=>new Date())
159
+ });
160
+ const subjectTable = (0, __WEBPACK_EXTERNAL_MODULE_fumadb_schema_96658f6d__.table)('subject', {
161
+ id: (0, __WEBPACK_EXTERNAL_MODULE_fumadb_schema_96658f6d__.idColumn)('id', 'varchar(255)'),
162
+ isIdentified: (0, __WEBPACK_EXTERNAL_MODULE_fumadb_schema_96658f6d__.column)('isIdentified', 'bool').defaultTo$(()=>false),
163
+ externalId: (0, __WEBPACK_EXTERNAL_MODULE_fumadb_schema_96658f6d__.column)('externalId', 'string').nullable(),
164
+ identityProvider: (0, __WEBPACK_EXTERNAL_MODULE_fumadb_schema_96658f6d__.column)('identityProvider', 'string').nullable(),
165
+ lastIpAddress: (0, __WEBPACK_EXTERNAL_MODULE_fumadb_schema_96658f6d__.column)('lastIpAddress', 'string').nullable(),
166
+ subjectTimezone: (0, __WEBPACK_EXTERNAL_MODULE_fumadb_schema_96658f6d__.column)('subjectTimezone', 'string').nullable(),
167
+ createdAt: (0, __WEBPACK_EXTERNAL_MODULE_fumadb_schema_96658f6d__.column)('createdAt', 'timestamp').defaultTo$('now'),
168
+ updatedAt: (0, __WEBPACK_EXTERNAL_MODULE_fumadb_schema_96658f6d__.column)('updatedAt', 'timestamp').defaultTo$('now')
169
+ });
170
+ __WEBPACK_EXTERNAL_MODULE_zod__.z.object({
171
+ id: __WEBPACK_EXTERNAL_MODULE_zod__.z.string(),
172
+ isIdentified: __WEBPACK_EXTERNAL_MODULE_zod__.z.boolean().prefault(false),
173
+ externalId: __WEBPACK_EXTERNAL_MODULE_zod__.z.string().nullish(),
174
+ identityProvider: __WEBPACK_EXTERNAL_MODULE_zod__.z.string().nullish(),
175
+ lastIpAddress: __WEBPACK_EXTERNAL_MODULE_zod__.z.string().optional(),
176
+ subjectTimezone: __WEBPACK_EXTERNAL_MODULE_zod__.z.string().nullish(),
177
+ createdAt: __WEBPACK_EXTERNAL_MODULE_zod__.z.date().prefault(()=>new Date()),
178
+ updatedAt: __WEBPACK_EXTERNAL_MODULE_zod__.z.date().prefault(()=>new Date())
179
+ });
180
+ const v1 = (0, __WEBPACK_EXTERNAL_MODULE_fumadb_schema_96658f6d__.schema)({
181
+ version: '1.0.0',
182
+ tables: {
183
+ subject: subjectTable,
184
+ domain: domainTable,
185
+ consentPolicy: consentPolicyTable,
186
+ consentPurpose: consentPurposeTable,
187
+ consent: consentTable,
188
+ auditLog: auditLogTable,
189
+ consentRecord: consentRecordTable
190
+ },
191
+ relations: {
192
+ subject: ({ many })=>({
193
+ consents: many('consent'),
194
+ consentRecords: many('consentRecord'),
195
+ auditLogs: many('auditLog')
196
+ }),
197
+ domain: ({ many })=>({
198
+ consents: many('consent')
199
+ }),
200
+ consentPolicy: ({ many })=>({
201
+ consents: many('consent')
202
+ }),
203
+ consentPurpose: ()=>({}),
204
+ consent: ({ one, many })=>({
205
+ subject: one('subject', [
206
+ 'subjectId',
207
+ 'id'
208
+ ]).foreignKey(),
209
+ domain: one('domain', [
210
+ 'domainId',
211
+ 'id'
212
+ ]).foreignKey(),
213
+ policy: one('consentPolicy', [
214
+ 'policyId',
215
+ 'id'
216
+ ]).foreignKey(),
217
+ consentRecords: many('consentRecord')
218
+ }),
219
+ consentRecord: ({ one })=>({
220
+ subject: one('subject', [
221
+ 'subjectId',
222
+ 'id'
223
+ ]).foreignKey(),
224
+ consent: one('consent', [
225
+ 'consentId',
226
+ 'id'
227
+ ]).foreignKey()
228
+ }),
229
+ auditLog: ({ one })=>({
230
+ subject: one('subject', [
231
+ 'subjectId',
232
+ 'id'
233
+ ]).foreignKey()
234
+ })
235
+ }
236
+ });
237
+ (0, __WEBPACK_EXTERNAL_MODULE_fumadb__.fumadb)({
238
+ namespace: 'c15t',
239
+ schemas: [
240
+ v1
241
+ ]
242
+ });
243
+ const baseConsentSchema = __WEBPACK_EXTERNAL_MODULE_zod__.z.object({
244
+ subjectId: __WEBPACK_EXTERNAL_MODULE_zod__.z.string().optional(),
245
+ externalSubjectId: __WEBPACK_EXTERNAL_MODULE_zod__.z.string().optional(),
246
+ domain: __WEBPACK_EXTERNAL_MODULE_zod__.z.string(),
247
+ type: PolicyTypeSchema,
248
+ metadata: __WEBPACK_EXTERNAL_MODULE_zod__.z.record(__WEBPACK_EXTERNAL_MODULE_zod__.z.string(), __WEBPACK_EXTERNAL_MODULE_zod__.z.unknown()).optional()
249
+ });
250
+ const cookieBannerSchema = baseConsentSchema.extend({
251
+ type: __WEBPACK_EXTERNAL_MODULE_zod__.z.literal('cookie_banner'),
252
+ preferences: __WEBPACK_EXTERNAL_MODULE_zod__.z.record(__WEBPACK_EXTERNAL_MODULE_zod__.z.string(), __WEBPACK_EXTERNAL_MODULE_zod__.z.boolean())
253
+ });
254
+ const policyBasedSchema = baseConsentSchema.extend({
255
+ type: __WEBPACK_EXTERNAL_MODULE_zod__.z["enum"]([
256
+ 'privacy_policy',
257
+ 'dpa',
258
+ 'terms_and_conditions'
259
+ ]),
260
+ policyId: __WEBPACK_EXTERNAL_MODULE_zod__.z.string().optional(),
261
+ preferences: __WEBPACK_EXTERNAL_MODULE_zod__.z.record(__WEBPACK_EXTERNAL_MODULE_zod__.z.string(), __WEBPACK_EXTERNAL_MODULE_zod__.z.boolean()).optional()
262
+ });
263
+ const otherConsentSchema = baseConsentSchema.extend({
264
+ type: __WEBPACK_EXTERNAL_MODULE_zod__.z["enum"]([
265
+ 'marketing_communications',
266
+ 'age_verification',
267
+ 'other'
268
+ ]),
269
+ preferences: __WEBPACK_EXTERNAL_MODULE_zod__.z.record(__WEBPACK_EXTERNAL_MODULE_zod__.z.string(), __WEBPACK_EXTERNAL_MODULE_zod__.z.boolean()).optional()
270
+ });
271
+ const postConsentContract = __WEBPACK_EXTERNAL_MODULE__orpc_contract_5a058524__.oc.route({
272
+ method: 'POST',
273
+ path: '/consent/set',
274
+ description: `Records a user's consent preferences and creates necessary consent records.
275
+ This endpoint handles various types of consent submissions:
276
+
277
+ 1. Cookie Banner Consent:
278
+ - Records granular cookie preferences
279
+ - Supports multiple consent purposes
280
+ - Creates audit trail for compliance
281
+
282
+ 2. Policy-Based Consent:
283
+ - Privacy Policy acceptance
284
+ - Data Processing Agreement (DPA) consent
285
+ - Terms and Conditions acceptance
286
+ - Links consent to specific policy versions
287
+
288
+ 3. Other Consent Types:
289
+ - Marketing communications preferences
290
+ - Age verification consent
291
+ - Custom consent types
292
+
293
+ The endpoint performs the following operations:
294
+ - Creates or retrieves subject records
295
+ - Validates domain and policy information
296
+ - Creates consent records with audit trails
297
+ - Records consent purposes and preferences
298
+ - Generates audit logs for compliance
299
+
300
+ Use this endpoint to record user consent and maintain a compliant consent management system.`,
301
+ tags: [
302
+ 'consent',
303
+ 'cookie-banner'
304
+ ]
305
+ }).errors({
306
+ INPUT_VALIDATION_FAILED: {
307
+ status: 422,
308
+ data: __WEBPACK_EXTERNAL_MODULE_zod__.z.object({
309
+ formErrors: __WEBPACK_EXTERNAL_MODULE_zod__.z.array(__WEBPACK_EXTERNAL_MODULE_zod__.z.string()),
310
+ fieldErrors: __WEBPACK_EXTERNAL_MODULE_zod__.z.record(__WEBPACK_EXTERNAL_MODULE_zod__.z.string(), __WEBPACK_EXTERNAL_MODULE_zod__.z.array(__WEBPACK_EXTERNAL_MODULE_zod__.z.string()))
311
+ }),
312
+ error: 'Invalid input parameters'
313
+ },
314
+ SUBJECT_CREATION_FAILED: {
315
+ status: 400,
316
+ data: __WEBPACK_EXTERNAL_MODULE_zod__.z.object({
317
+ subjectId: __WEBPACK_EXTERNAL_MODULE_zod__.z.string().optional(),
318
+ externalSubjectId: __WEBPACK_EXTERNAL_MODULE_zod__.z.string().optional()
319
+ }),
320
+ error: 'Failed to create or find subject'
321
+ },
322
+ DOMAIN_CREATION_FAILED: {
323
+ status: 500,
324
+ data: __WEBPACK_EXTERNAL_MODULE_zod__.z.object({
325
+ domain: __WEBPACK_EXTERNAL_MODULE_zod__.z.string()
326
+ }),
327
+ error: 'Failed to create or find domain'
328
+ },
329
+ POLICY_NOT_FOUND: {
330
+ status: 404,
331
+ data: __WEBPACK_EXTERNAL_MODULE_zod__.z.object({
332
+ policyId: __WEBPACK_EXTERNAL_MODULE_zod__.z.string(),
333
+ type: __WEBPACK_EXTERNAL_MODULE_zod__.z.string()
334
+ }),
335
+ error: 'Policy not found'
336
+ },
337
+ POLICY_INACTIVE: {
338
+ status: 409,
339
+ data: __WEBPACK_EXTERNAL_MODULE_zod__.z.object({
340
+ policyId: __WEBPACK_EXTERNAL_MODULE_zod__.z.string(),
341
+ type: __WEBPACK_EXTERNAL_MODULE_zod__.z.string()
342
+ }),
343
+ error: 'Policy is not active'
344
+ },
345
+ POLICY_CREATION_FAILED: {
346
+ status: 500,
347
+ data: __WEBPACK_EXTERNAL_MODULE_zod__.z.object({
348
+ type: __WEBPACK_EXTERNAL_MODULE_zod__.z.string()
349
+ }),
350
+ error: 'Failed to create or find policy'
351
+ },
352
+ PURPOSE_CREATION_FAILED: {
353
+ status: 500,
354
+ data: __WEBPACK_EXTERNAL_MODULE_zod__.z.object({
355
+ purposeCode: __WEBPACK_EXTERNAL_MODULE_zod__.z.string()
356
+ }),
357
+ error: 'Failed to create consent purpose'
358
+ },
359
+ CONSENT_CREATION_FAILED: {
360
+ status: 500,
361
+ data: __WEBPACK_EXTERNAL_MODULE_zod__.z.object({
362
+ subjectId: __WEBPACK_EXTERNAL_MODULE_zod__.z.string(),
363
+ domain: __WEBPACK_EXTERNAL_MODULE_zod__.z.string()
364
+ }),
365
+ error: 'Failed to create consent record'
366
+ }
367
+ }).input(__WEBPACK_EXTERNAL_MODULE_zod__.z.discriminatedUnion('type', [
368
+ cookieBannerSchema,
369
+ policyBasedSchema,
370
+ otherConsentSchema
371
+ ])).output(__WEBPACK_EXTERNAL_MODULE_zod__.z.object({
372
+ id: __WEBPACK_EXTERNAL_MODULE_zod__.z.string(),
373
+ subjectId: __WEBPACK_EXTERNAL_MODULE_zod__.z.string().optional(),
374
+ externalSubjectId: __WEBPACK_EXTERNAL_MODULE_zod__.z.string().optional(),
375
+ domainId: __WEBPACK_EXTERNAL_MODULE_zod__.z.string(),
376
+ domain: __WEBPACK_EXTERNAL_MODULE_zod__.z.string(),
377
+ type: PolicyTypeSchema,
378
+ status: __WEBPACK_EXTERNAL_MODULE_zod__.z.string(),
379
+ recordId: __WEBPACK_EXTERNAL_MODULE_zod__.z.string(),
380
+ metadata: __WEBPACK_EXTERNAL_MODULE_zod__.z.record(__WEBPACK_EXTERNAL_MODULE_zod__.z.string(), __WEBPACK_EXTERNAL_MODULE_zod__.z.unknown()).optional(),
381
+ givenAt: __WEBPACK_EXTERNAL_MODULE_zod__.z.date()
382
+ }));
383
+ const branding = [
384
+ 'c15t',
385
+ 'consent',
386
+ 'none'
387
+ ];
388
+ const JurisdictionCodeSchema = __WEBPACK_EXTERNAL_MODULE_zod__.z["enum"]([
389
+ 'GDPR',
390
+ 'CH',
391
+ 'BR',
392
+ 'PIPEDA',
393
+ 'AU',
394
+ 'APPI',
395
+ 'PIPA',
396
+ 'NONE'
397
+ ]);
398
+ const JurisdictionInfoSchema = __WEBPACK_EXTERNAL_MODULE_zod__.z.object({
399
+ code: JurisdictionCodeSchema,
400
+ message: __WEBPACK_EXTERNAL_MODULE_zod__.z.string()
401
+ });
402
+ const TitleDescriptionSchema = __WEBPACK_EXTERNAL_MODULE_zod__.z.object({
403
+ title: __WEBPACK_EXTERNAL_MODULE_zod__.z.string(),
404
+ description: __WEBPACK_EXTERNAL_MODULE_zod__.z.string()
405
+ });
406
+ const TranslationsSchema = __WEBPACK_EXTERNAL_MODULE_zod__.z.object({
407
+ common: __WEBPACK_EXTERNAL_MODULE_zod__.z.object({
408
+ acceptAll: __WEBPACK_EXTERNAL_MODULE_zod__.z.string(),
409
+ rejectAll: __WEBPACK_EXTERNAL_MODULE_zod__.z.string(),
410
+ customize: __WEBPACK_EXTERNAL_MODULE_zod__.z.string(),
411
+ save: __WEBPACK_EXTERNAL_MODULE_zod__.z.string()
412
+ }),
413
+ cookieBanner: TitleDescriptionSchema,
414
+ consentManagerDialog: TitleDescriptionSchema,
415
+ consentTypes: __WEBPACK_EXTERNAL_MODULE_zod__.z.object({
416
+ experience: TitleDescriptionSchema,
417
+ functionality: TitleDescriptionSchema,
418
+ marketing: TitleDescriptionSchema,
419
+ measurement: TitleDescriptionSchema,
420
+ necessary: TitleDescriptionSchema
421
+ })
422
+ });
423
+ const showConsentBannerContract = __WEBPACK_EXTERNAL_MODULE__orpc_contract_5a058524__.oc.route({
424
+ method: 'GET',
425
+ path: '/show-consent-banner',
426
+ description: `Determines if a user should see a consent banner based on their location and applicable privacy regulations.
427
+ This endpoint performs the following checks:
428
+
429
+ 1. Detects the user's location using various header information:
430
+ - Cloudflare country headers
431
+ - Vercel IP country headers
432
+ - AWS CloudFront headers
433
+ - Custom country code headers
434
+
435
+ 2. Determines the applicable jurisdiction based on the location:
436
+ - GDPR (EU/EEA/UK)
437
+ - Swiss Data Protection Act
438
+ - LGPD (Brazil)
439
+ - PIPEDA (Canada)
440
+ - Australian Privacy Principles
441
+ - APPI (Japan)
442
+ - PIPA (South Korea)
443
+
444
+ 3. Returns detailed information about:
445
+ - Whether to show the consent banner
446
+ - The applicable jurisdiction and its requirements
447
+ - The user's detected location (country and region)
448
+
449
+ Use this endpoint to implement geo-targeted consent banners and ensure compliance with regional privacy regulations.`,
450
+ tags: [
451
+ 'cookie-banner'
452
+ ]
453
+ }).output(__WEBPACK_EXTERNAL_MODULE_zod__.z.object({
454
+ showConsentBanner: __WEBPACK_EXTERNAL_MODULE_zod__.z.boolean(),
455
+ jurisdiction: JurisdictionInfoSchema,
456
+ location: __WEBPACK_EXTERNAL_MODULE_zod__.z.object({
457
+ countryCode: __WEBPACK_EXTERNAL_MODULE_zod__.z.string().nullable(),
458
+ regionCode: __WEBPACK_EXTERNAL_MODULE_zod__.z.string().nullable()
459
+ }),
460
+ translations: __WEBPACK_EXTERNAL_MODULE_zod__.z.object({
461
+ language: __WEBPACK_EXTERNAL_MODULE_zod__.z.string(),
462
+ translations: TranslationsSchema
463
+ }),
464
+ branding: __WEBPACK_EXTERNAL_MODULE_zod__.z["enum"](branding)
465
+ }));
466
+ const verifyConsentInputSchema = __WEBPACK_EXTERNAL_MODULE_zod__.z.strictObject({
467
+ subjectId: __WEBPACK_EXTERNAL_MODULE_zod__.z.string().optional(),
468
+ externalSubjectId: __WEBPACK_EXTERNAL_MODULE_zod__.z.string().optional(),
469
+ domain: __WEBPACK_EXTERNAL_MODULE_zod__.z.string(),
470
+ type: PolicyTypeSchema,
471
+ policyId: __WEBPACK_EXTERNAL_MODULE_zod__.z.string().optional(),
472
+ preferences: __WEBPACK_EXTERNAL_MODULE_zod__.z.array(__WEBPACK_EXTERNAL_MODULE_zod__.z.string()).optional()
473
+ });
474
+ const verify_contract_consentSchema = __WEBPACK_EXTERNAL_MODULE_zod__.z.looseObject({
475
+ id: __WEBPACK_EXTERNAL_MODULE_zod__.z.string(),
476
+ purposeIds: __WEBPACK_EXTERNAL_MODULE_zod__.z.array(__WEBPACK_EXTERNAL_MODULE_zod__.z.string())
477
+ });
478
+ const verifyConsentContract = __WEBPACK_EXTERNAL_MODULE__orpc_contract_5a058524__.oc.route({
479
+ method: 'POST',
480
+ path: '/consent/verify',
481
+ description: `Verifies if a user has given valid consent for a specific policy and domain.
482
+ This endpoint performs comprehensive consent verification by:
483
+
484
+ 1. Validating the subject's identity (using subjectId or externalSubjectId)
485
+ 2. Verifying the domain's existence and validity
486
+ 3. Checking if the specified policy exists and is active
487
+ 4. Validating that all required purposes have been consented to
488
+ 5. Ensuring the consent record is current and valid
489
+
490
+ The endpoint supports different types of consent verification:
491
+ - Cookie banner consent verification
492
+ - Privacy policy consent verification
493
+ - Terms and conditions verification
494
+ - Marketing communications consent verification
495
+ - Age verification
496
+ - Custom consent types
497
+
498
+ Use this endpoint to ensure compliance with privacy regulations and to verify user consent before processing personal data.`,
499
+ tags: [
500
+ 'consent'
501
+ ]
502
+ }).errors({
503
+ INPUT_VALIDATION_FAILED: {
504
+ status: 422,
505
+ data: __WEBPACK_EXTERNAL_MODULE_zod__.z.object({
506
+ formErrors: __WEBPACK_EXTERNAL_MODULE_zod__.z.array(__WEBPACK_EXTERNAL_MODULE_zod__.z.string()),
507
+ fieldErrors: __WEBPACK_EXTERNAL_MODULE_zod__.z.record(__WEBPACK_EXTERNAL_MODULE_zod__.z.string(), __WEBPACK_EXTERNAL_MODULE_zod__.z.array(__WEBPACK_EXTERNAL_MODULE_zod__.z.string()).optional())
508
+ }),
509
+ error: 'Invalid input parameters'
510
+ },
511
+ SUBJECT_NOT_FOUND: {
512
+ status: 404,
513
+ data: __WEBPACK_EXTERNAL_MODULE_zod__.z.object({
514
+ subjectId: __WEBPACK_EXTERNAL_MODULE_zod__.z.string().optional(),
515
+ externalSubjectId: __WEBPACK_EXTERNAL_MODULE_zod__.z.string().optional()
516
+ }),
517
+ error: 'Subject not found'
518
+ },
519
+ DOMAIN_NOT_FOUND: {
520
+ status: 404,
521
+ data: __WEBPACK_EXTERNAL_MODULE_zod__.z.object({
522
+ domain: __WEBPACK_EXTERNAL_MODULE_zod__.z.string()
523
+ }),
524
+ error: 'Domain not found'
525
+ },
526
+ POLICY_NOT_FOUND: {
527
+ status: 404,
528
+ data: __WEBPACK_EXTERNAL_MODULE_zod__.z.object({
529
+ policyId: __WEBPACK_EXTERNAL_MODULE_zod__.z.string(),
530
+ type: __WEBPACK_EXTERNAL_MODULE_zod__.z.string()
531
+ }),
532
+ error: 'Policy not found or invalid'
533
+ },
534
+ PURPOSES_NOT_FOUND: {
535
+ status: 404,
536
+ data: __WEBPACK_EXTERNAL_MODULE_zod__.z.object({
537
+ preferences: __WEBPACK_EXTERNAL_MODULE_zod__.z.array(__WEBPACK_EXTERNAL_MODULE_zod__.z.string()),
538
+ foundPurposes: __WEBPACK_EXTERNAL_MODULE_zod__.z.array(__WEBPACK_EXTERNAL_MODULE_zod__.z.string())
539
+ }),
540
+ error: 'Could not find all specified purposes'
541
+ },
542
+ COOKIE_BANNER_PREFERENCES_REQUIRED: {
543
+ status: 400,
544
+ data: __WEBPACK_EXTERNAL_MODULE_zod__.z.object({
545
+ type: __WEBPACK_EXTERNAL_MODULE_zod__.z.literal('cookie_banner')
546
+ }),
547
+ error: 'Preferences are required for cookie banner consent'
548
+ },
549
+ NO_CONSENT_FOUND: {
550
+ status: 404,
551
+ data: __WEBPACK_EXTERNAL_MODULE_zod__.z.object({
552
+ policyId: __WEBPACK_EXTERNAL_MODULE_zod__.z.string(),
553
+ subjectId: __WEBPACK_EXTERNAL_MODULE_zod__.z.string(),
554
+ domainId: __WEBPACK_EXTERNAL_MODULE_zod__.z.string()
555
+ }),
556
+ error: 'No consent found for the given policy'
557
+ }
558
+ }).input(verifyConsentInputSchema).output(__WEBPACK_EXTERNAL_MODULE_zod__.z.object({
559
+ isValid: __WEBPACK_EXTERNAL_MODULE_zod__.z.boolean(),
560
+ reasons: __WEBPACK_EXTERNAL_MODULE_zod__.z.array(__WEBPACK_EXTERNAL_MODULE_zod__.z.string()).optional(),
561
+ consent: verify_contract_consentSchema.optional()
562
+ }));
563
+ const consentContracts = {
564
+ post: postConsentContract,
565
+ showBanner: showConsentBannerContract,
566
+ verify: verifyConsentContract
567
+ };
568
+ const statusContract = __WEBPACK_EXTERNAL_MODULE__orpc_contract_5a058524__.oc.route({
569
+ method: 'GET',
570
+ path: '/status',
571
+ description: `Returns the current operational status and health metrics of the service.
572
+ This endpoint provides real-time information about:
573
+ - Overall service status (ok/error)
574
+ - Current API version
575
+ - Server timestamp
576
+ - Storage system status and availability
577
+ - Client information (IP, User Agent, Region)
578
+
579
+ Use this endpoint for health checks, monitoring, and service status verification.`,
580
+ tags: [
581
+ 'meta'
582
+ ]
583
+ }).output(__WEBPACK_EXTERNAL_MODULE_zod__.z.object({
584
+ status: __WEBPACK_EXTERNAL_MODULE_zod__.z["enum"]([
585
+ 'ok',
586
+ 'error'
587
+ ]),
588
+ version: __WEBPACK_EXTERNAL_MODULE_zod__.z.string(),
589
+ timestamp: __WEBPACK_EXTERNAL_MODULE_zod__.z.date(),
590
+ client: __WEBPACK_EXTERNAL_MODULE_zod__.z.object({
591
+ ip: __WEBPACK_EXTERNAL_MODULE_zod__.z.string().nullable(),
592
+ userAgent: __WEBPACK_EXTERNAL_MODULE_zod__.z.string().nullable(),
593
+ region: __WEBPACK_EXTERNAL_MODULE_zod__.z.object({
594
+ countryCode: __WEBPACK_EXTERNAL_MODULE_zod__.z.string().nullable(),
595
+ regionCode: __WEBPACK_EXTERNAL_MODULE_zod__.z.string().nullable()
596
+ })
597
+ })
598
+ }));
599
+ const metaContracts = {
600
+ status: statusContract
601
+ };
602
+ const config = {
603
+ consent: consentContracts,
604
+ meta: metaContracts
605
+ };
606
+ const os = (0, __WEBPACK_EXTERNAL_MODULE__orpc_server_0dae8408__.implement)(config);
607
+ export { config as contracts, os };
@@ -0,0 +1,19 @@
1
+ export declare const metaContracts: {
2
+ status: import("@orpc/contract").ContractProcedureBuilderWithOutput<import("@orpc/contract").Schema<unknown, unknown>, import("zod").ZodObject<{
3
+ status: import("zod").ZodEnum<{
4
+ error: "error";
5
+ ok: "ok";
6
+ }>;
7
+ version: import("zod").ZodString;
8
+ timestamp: import("zod").ZodDate;
9
+ client: import("zod").ZodObject<{
10
+ ip: import("zod").ZodNullable<import("zod").ZodString>;
11
+ userAgent: import("zod").ZodNullable<import("zod").ZodString>;
12
+ region: import("zod").ZodObject<{
13
+ countryCode: import("zod").ZodNullable<import("zod").ZodString>;
14
+ regionCode: import("zod").ZodNullable<import("zod").ZodString>;
15
+ }, import("zod/v4/core").$strip>;
16
+ }, import("zod/v4/core").$strip>;
17
+ }, import("zod/v4/core").$strip>, Record<never, never>, Record<never, never>>;
18
+ };
19
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/v2/contracts/meta/index.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;CAEzB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.test.d.ts","sourceRoot":"","sources":["../../../../src/v2/contracts/meta/index.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,18 @@
1
+ import { z } from 'zod';
2
+ export declare const statusContract: import("@orpc/contract").ContractProcedureBuilderWithOutput<import("@orpc/contract").Schema<unknown, unknown>, z.ZodObject<{
3
+ status: z.ZodEnum<{
4
+ error: "error";
5
+ ok: "ok";
6
+ }>;
7
+ version: z.ZodString;
8
+ timestamp: z.ZodDate;
9
+ client: z.ZodObject<{
10
+ ip: z.ZodNullable<z.ZodString>;
11
+ userAgent: z.ZodNullable<z.ZodString>;
12
+ region: z.ZodObject<{
13
+ countryCode: z.ZodNullable<z.ZodString>;
14
+ regionCode: z.ZodNullable<z.ZodString>;
15
+ }, z.core.$strip>;
16
+ }, z.core.$strip>;
17
+ }, z.core.$strip>, Record<never, never>, Record<never, never>>;
18
+ //# sourceMappingURL=status.contract.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status.contract.d.ts","sourceRoot":"","sources":["../../../../src/v2/contracts/meta/status.contract.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;8DA8BzB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=status.contract.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status.contract.test.d.ts","sourceRoot":"","sources":["../../../../src/v2/contracts/meta/status.contract.test.ts"],"names":[],"mappings":""}