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