@c15t/backend 0.0.1-rc.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (521) hide show
  1. package/.turbo/turbo-build.log +11 -0
  2. package/.turbo/turbo-check-types.log +5 -0
  3. package/.turbo/turbo-fmt.log +7 -0
  4. package/.turbo/turbo-lint.log +6 -0
  5. package/.turbo/turbo-test.log +26 -0
  6. package/README-next.md +223 -0
  7. package/README.md +164 -0
  8. package/dist/api/call.d.ts +176 -0
  9. package/dist/api/call.d.ts.map +1 -0
  10. package/dist/api/index.d.ts +935 -0
  11. package/dist/api/index.d.ts.map +1 -0
  12. package/dist/api/middlewares/index.d.ts +39 -0
  13. package/dist/api/middlewares/index.d.ts.map +1 -0
  14. package/dist/api/middlewares/origin-check.d.ts +82 -0
  15. package/dist/api/middlewares/origin-check.d.ts.map +1 -0
  16. package/dist/api/middlewares/validate-context.d.ts +38 -0
  17. package/dist/api/middlewares/validate-context.d.ts.map +1 -0
  18. package/dist/api/routes/__tests__/consent.test.d.ts +2 -0
  19. package/dist/api/routes/__tests__/consent.test.d.ts.map +1 -0
  20. package/dist/api/routes/__tests__/status.test.d.ts +2 -0
  21. package/dist/api/routes/__tests__/status.test.d.ts.map +1 -0
  22. package/dist/api/routes/error.d.ts +57 -0
  23. package/dist/api/routes/error.d.ts.map +1 -0
  24. package/dist/api/routes/generate-consent-receipt.d.ts +130 -0
  25. package/dist/api/routes/generate-consent-receipt.d.ts.map +1 -0
  26. package/dist/api/routes/get-consent-history.d.ts +133 -0
  27. package/dist/api/routes/get-consent-history.d.ts.map +1 -0
  28. package/dist/api/routes/get-consent-policy.d.ts +164 -0
  29. package/dist/api/routes/get-consent-policy.d.ts.map +1 -0
  30. package/dist/api/routes/get-consent.d.ts +148 -0
  31. package/dist/api/routes/get-consent.d.ts.map +1 -0
  32. package/dist/api/routes/index.d.ts +339 -0
  33. package/dist/api/routes/index.d.ts.map +1 -0
  34. package/dist/api/routes/ok.d.ts +87 -0
  35. package/dist/api/routes/ok.d.ts.map +1 -0
  36. package/dist/api/routes/set-consent.d.ts +245 -0
  37. package/dist/api/routes/set-consent.d.ts.map +1 -0
  38. package/dist/api/routes/show-consent-banner.d.ts +127 -0
  39. package/dist/api/routes/show-consent-banner.d.ts.map +1 -0
  40. package/dist/api/routes/status.d.ts +61 -0
  41. package/dist/api/routes/status.d.ts.map +1 -0
  42. package/dist/api/routes/verify-consent.d.ts +179 -0
  43. package/dist/api/routes/verify-consent.d.ts.map +1 -0
  44. package/dist/api/routes/withdraw-consent.d.ts +194 -0
  45. package/dist/api/routes/withdraw-consent.d.ts.map +1 -0
  46. package/dist/api/to-endpoints.d.ts +35 -0
  47. package/dist/api/to-endpoints.d.ts.map +1 -0
  48. package/dist/client/index.cjs +139 -0
  49. package/dist/client/index.d.ts +203 -0
  50. package/dist/client/index.d.ts.map +1 -0
  51. package/dist/client/index.js +106 -0
  52. package/dist/client/types.d.ts +431 -0
  53. package/dist/client/types.d.ts.map +1 -0
  54. package/dist/core.d.ts +124 -0
  55. package/dist/core.d.ts.map +1 -0
  56. package/dist/core.test.d.ts +2 -0
  57. package/dist/core.test.d.ts.map +1 -0
  58. package/dist/db/adapters/drizzle-adapter/drizzle-adapter.d.ts +122 -0
  59. package/dist/db/adapters/drizzle-adapter/drizzle-adapter.d.ts.map +1 -0
  60. package/dist/db/adapters/drizzle-adapter/index.d.ts +2 -0
  61. package/dist/db/adapters/drizzle-adapter/index.d.ts.map +1 -0
  62. package/dist/db/adapters/drizzle.cjs +1531 -0
  63. package/dist/db/adapters/drizzle.js +1489 -0
  64. package/dist/db/adapters/kysely-adapter/dialect.d.ts +72 -0
  65. package/dist/db/adapters/kysely-adapter/dialect.d.ts.map +1 -0
  66. package/dist/db/adapters/kysely-adapter/index.d.ts +4 -0
  67. package/dist/db/adapters/kysely-adapter/index.d.ts.map +1 -0
  68. package/dist/db/adapters/kysely-adapter/kysely-adapter.d.ts +98 -0
  69. package/dist/db/adapters/kysely-adapter/kysely-adapter.d.ts.map +1 -0
  70. package/dist/db/adapters/kysely-adapter/types.d.ts +281 -0
  71. package/dist/db/adapters/kysely-adapter/types.d.ts.map +1 -0
  72. package/dist/db/adapters/kysely.cjs +1551 -0
  73. package/dist/db/adapters/kysely.js +1508 -0
  74. package/dist/db/adapters/memory-adapter/index.d.ts +2 -0
  75. package/dist/db/adapters/memory-adapter/index.d.ts.map +1 -0
  76. package/dist/db/adapters/memory-adapter/memory-adapter.d.ts +56 -0
  77. package/dist/db/adapters/memory-adapter/memory-adapter.d.ts.map +1 -0
  78. package/dist/db/adapters/memory.cjs +1391 -0
  79. package/dist/db/adapters/memory.js +1349 -0
  80. package/dist/db/adapters/prisma-adapter/index.d.ts +2 -0
  81. package/dist/db/adapters/prisma-adapter/index.d.ts.map +1 -0
  82. package/dist/db/adapters/prisma-adapter/prisma-adapter.d.ts +143 -0
  83. package/dist/db/adapters/prisma-adapter/prisma-adapter.d.ts.map +1 -0
  84. package/dist/db/adapters/prisma.cjs +1503 -0
  85. package/dist/db/adapters/prisma.js +1461 -0
  86. package/dist/db/adapters/types.d.ts +154 -0
  87. package/dist/db/adapters/types.d.ts.map +1 -0
  88. package/dist/db/adapters/utils.d.ts +36 -0
  89. package/dist/db/adapters/utils.d.ts.map +1 -0
  90. package/dist/db/core/fields/field-factory.d.ts +383 -0
  91. package/dist/db/core/fields/field-factory.d.ts.map +1 -0
  92. package/dist/db/core/fields/field-inference.d.ts +218 -0
  93. package/dist/db/core/fields/field-inference.d.ts.map +1 -0
  94. package/dist/db/core/fields/field-options-integration.d.ts +90 -0
  95. package/dist/db/core/fields/field-options-integration.d.ts.map +1 -0
  96. package/dist/db/core/fields/field-types.d.ts +182 -0
  97. package/dist/db/core/fields/field-types.d.ts.map +1 -0
  98. package/dist/db/core/fields/id-generator.d.ts +19 -0
  99. package/dist/db/core/fields/id-generator.d.ts.map +1 -0
  100. package/dist/db/core/fields/index.d.ts +8 -0
  101. package/dist/db/core/fields/index.d.ts.map +1 -0
  102. package/dist/db/core/fields/superjson-utils.d.ts +34 -0
  103. package/dist/db/core/fields/superjson-utils.d.ts.map +1 -0
  104. package/dist/db/core/fields/zod-fields.d.ts +1011 -0
  105. package/dist/db/core/fields/zod-fields.d.ts.map +1 -0
  106. package/dist/db/core/get-schema.d.ts +36 -0
  107. package/dist/db/core/get-schema.d.ts.map +1 -0
  108. package/dist/db/core/types.d.ts +41 -0
  109. package/dist/db/core/types.d.ts.map +1 -0
  110. package/dist/db/create-registry.d.ts +760 -0
  111. package/dist/db/create-registry.d.ts.map +1 -0
  112. package/dist/db/hooks/create-hooks.d.ts +32 -0
  113. package/dist/db/hooks/create-hooks.d.ts.map +1 -0
  114. package/dist/db/hooks/index.d.ts +40 -0
  115. package/dist/db/hooks/index.d.ts.map +1 -0
  116. package/dist/db/hooks/types.d.ts +133 -0
  117. package/dist/db/hooks/types.d.ts.map +1 -0
  118. package/dist/db/hooks/update-hooks.d.ts +33 -0
  119. package/dist/db/hooks/update-hooks.d.ts.map +1 -0
  120. package/dist/db/hooks/update-many-hooks.d.ts +55 -0
  121. package/dist/db/hooks/update-many-hooks.d.ts.map +1 -0
  122. package/dist/db/hooks/utils.d.ts +62 -0
  123. package/dist/db/hooks/utils.d.ts.map +1 -0
  124. package/dist/db/hooks/with-hooks-factory.d.ts +33 -0
  125. package/dist/db/hooks/with-hooks-factory.d.ts.map +1 -0
  126. package/dist/db/index.cjs +2458 -0
  127. package/dist/db/index.d.ts +11 -0
  128. package/dist/db/index.d.ts.map +1 -0
  129. package/dist/db/index.js +2404 -0
  130. package/dist/db/migration/get-migration.d.ts +32 -0
  131. package/dist/db/migration/get-migration.d.ts.map +1 -0
  132. package/dist/db/migration/get-schema/get-schema.d.ts +27 -0
  133. package/dist/db/migration/get-schema/get-schema.d.ts.map +1 -0
  134. package/dist/db/migration/get-schema/index.d.ts +21 -0
  135. package/dist/db/migration/get-schema/index.d.ts.map +1 -0
  136. package/dist/db/migration/get-schema/process-fields.d.ts +16 -0
  137. package/dist/db/migration/get-schema/process-fields.d.ts.map +1 -0
  138. package/dist/db/migration/get-schema/process-tables.d.ts +13 -0
  139. package/dist/db/migration/get-schema/process-tables.d.ts.map +1 -0
  140. package/dist/db/migration/get-schema/types.d.ts +17 -0
  141. package/dist/db/migration/get-schema/types.d.ts.map +1 -0
  142. package/dist/db/migration/index.cjs +1613 -0
  143. package/dist/db/migration/index.d.ts +14 -0
  144. package/dist/db/migration/index.d.ts.map +1 -0
  145. package/dist/db/migration/index.js +1571 -0
  146. package/dist/db/migration/migration-builders.d.ts +28 -0
  147. package/dist/db/migration/migration-builders.d.ts.map +1 -0
  148. package/dist/db/migration/migration-execution.d.ts +12 -0
  149. package/dist/db/migration/migration-execution.d.ts.map +1 -0
  150. package/dist/db/migration/schema-comparison.d.ts +54 -0
  151. package/dist/db/migration/schema-comparison.d.ts.map +1 -0
  152. package/dist/db/migration/type-mapping.d.ts +86 -0
  153. package/dist/db/migration/type-mapping.d.ts.map +1 -0
  154. package/dist/db/migration/types.d.ts +37 -0
  155. package/dist/db/migration/types.d.ts.map +1 -0
  156. package/dist/db/schema/audit-log/index.d.ts +4 -0
  157. package/dist/db/schema/audit-log/index.d.ts.map +1 -0
  158. package/dist/db/schema/audit-log/registry.d.ts +128 -0
  159. package/dist/db/schema/audit-log/registry.d.ts.map +1 -0
  160. package/dist/db/schema/audit-log/schema.d.ts +67 -0
  161. package/dist/db/schema/audit-log/schema.d.ts.map +1 -0
  162. package/dist/db/schema/audit-log/table.d.ts +175 -0
  163. package/dist/db/schema/audit-log/table.d.ts.map +1 -0
  164. package/dist/db/schema/audit-log/types.d.ts +29 -0
  165. package/dist/db/schema/audit-log/types.d.ts.map +1 -0
  166. package/dist/db/schema/consent/index.d.ts +4 -0
  167. package/dist/db/schema/consent/index.d.ts.map +1 -0
  168. package/dist/db/schema/consent/registry.d.ts +318 -0
  169. package/dist/db/schema/consent/registry.d.ts.map +1 -0
  170. package/dist/db/schema/consent/schema.d.ts +135 -0
  171. package/dist/db/schema/consent/schema.d.ts.map +1 -0
  172. package/dist/db/schema/consent/table.d.ts +245 -0
  173. package/dist/db/schema/consent/table.d.ts.map +1 -0
  174. package/dist/db/schema/consent/types.d.ts +37 -0
  175. package/dist/db/schema/consent/types.d.ts.map +1 -0
  176. package/dist/db/schema/consent-geo-location/index.d.ts +4 -0
  177. package/dist/db/schema/consent-geo-location/index.d.ts.map +1 -0
  178. package/dist/db/schema/consent-geo-location/registry.d.ts +96 -0
  179. package/dist/db/schema/consent-geo-location/registry.d.ts.map +1 -0
  180. package/dist/db/schema/consent-geo-location/schema.d.ts +71 -0
  181. package/dist/db/schema/consent-geo-location/schema.d.ts.map +1 -0
  182. package/dist/db/schema/consent-geo-location/table.d.ts +167 -0
  183. package/dist/db/schema/consent-geo-location/table.d.ts.map +1 -0
  184. package/dist/db/schema/consent-geo-location/types.d.ts +21 -0
  185. package/dist/db/schema/consent-geo-location/types.d.ts.map +1 -0
  186. package/dist/db/schema/consent-policy/index.d.ts +4 -0
  187. package/dist/db/schema/consent-policy/index.d.ts.map +1 -0
  188. package/dist/db/schema/consent-policy/registry.d.ts +186 -0
  189. package/dist/db/schema/consent-policy/registry.d.ts.map +1 -0
  190. package/dist/db/schema/consent-policy/schema.d.ts +68 -0
  191. package/dist/db/schema/consent-policy/schema.d.ts.map +1 -0
  192. package/dist/db/schema/consent-policy/table.d.ts +147 -0
  193. package/dist/db/schema/consent-policy/table.d.ts.map +1 -0
  194. package/dist/db/schema/consent-policy/types.d.ts +28 -0
  195. package/dist/db/schema/consent-policy/types.d.ts.map +1 -0
  196. package/dist/db/schema/consent-purpose/index.d.ts +4 -0
  197. package/dist/db/schema/consent-purpose/index.d.ts.map +1 -0
  198. package/dist/db/schema/consent-purpose/registry.d.ts +136 -0
  199. package/dist/db/schema/consent-purpose/registry.d.ts.map +1 -0
  200. package/dist/db/schema/consent-purpose/schema.d.ts +79 -0
  201. package/dist/db/schema/consent-purpose/schema.d.ts.map +1 -0
  202. package/dist/db/schema/consent-purpose/table.d.ts +161 -0
  203. package/dist/db/schema/consent-purpose/table.d.ts.map +1 -0
  204. package/dist/db/schema/consent-purpose/types.d.ts +16 -0
  205. package/dist/db/schema/consent-purpose/types.d.ts.map +1 -0
  206. package/dist/db/schema/consent-purpose-junction/index.d.ts +4 -0
  207. package/dist/db/schema/consent-purpose-junction/index.d.ts.map +1 -0
  208. package/dist/db/schema/consent-purpose-junction/registry.d.ts +109 -0
  209. package/dist/db/schema/consent-purpose-junction/registry.d.ts.map +1 -0
  210. package/dist/db/schema/consent-purpose-junction/schema.d.ts +57 -0
  211. package/dist/db/schema/consent-purpose-junction/schema.d.ts.map +1 -0
  212. package/dist/db/schema/consent-purpose-junction/table.d.ts +138 -0
  213. package/dist/db/schema/consent-purpose-junction/table.d.ts.map +1 -0
  214. package/dist/db/schema/consent-purpose-junction/types.d.ts +14 -0
  215. package/dist/db/schema/consent-purpose-junction/types.d.ts.map +1 -0
  216. package/dist/db/schema/consent-record/index.d.ts +4 -0
  217. package/dist/db/schema/consent-record/index.d.ts.map +1 -0
  218. package/dist/db/schema/consent-record/registry.d.ts +119 -0
  219. package/dist/db/schema/consent-record/registry.d.ts.map +1 -0
  220. package/dist/db/schema/consent-record/schema.d.ts +57 -0
  221. package/dist/db/schema/consent-record/schema.d.ts.map +1 -0
  222. package/dist/db/schema/consent-record/table.d.ts +123 -0
  223. package/dist/db/schema/consent-record/table.d.ts.map +1 -0
  224. package/dist/db/schema/consent-record/types.d.ts +21 -0
  225. package/dist/db/schema/consent-record/types.d.ts.map +1 -0
  226. package/dist/db/schema/consent-withdrawal/index.d.ts +4 -0
  227. package/dist/db/schema/consent-withdrawal/index.d.ts.map +1 -0
  228. package/dist/db/schema/consent-withdrawal/registry.d.ts +134 -0
  229. package/dist/db/schema/consent-withdrawal/registry.d.ts.map +1 -0
  230. package/dist/db/schema/consent-withdrawal/schema.d.ts +67 -0
  231. package/dist/db/schema/consent-withdrawal/schema.d.ts.map +1 -0
  232. package/dist/db/schema/consent-withdrawal/table.d.ts +170 -0
  233. package/dist/db/schema/consent-withdrawal/table.d.ts.map +1 -0
  234. package/dist/db/schema/consent-withdrawal/types.d.ts +28 -0
  235. package/dist/db/schema/consent-withdrawal/types.d.ts.map +1 -0
  236. package/dist/db/schema/definition.d.ts +1100 -0
  237. package/dist/db/schema/definition.d.ts.map +1 -0
  238. package/dist/db/schema/domain/index.d.ts +4 -0
  239. package/dist/db/schema/domain/index.d.ts.map +1 -0
  240. package/dist/db/schema/domain/registry.d.ts +169 -0
  241. package/dist/db/schema/domain/registry.d.ts.map +1 -0
  242. package/dist/db/schema/domain/schema.d.ts +60 -0
  243. package/dist/db/schema/domain/schema.d.ts.map +1 -0
  244. package/dist/db/schema/domain/table.d.ts +140 -0
  245. package/dist/db/schema/domain/table.d.ts.map +1 -0
  246. package/dist/db/schema/domain/types.d.ts +27 -0
  247. package/dist/db/schema/domain/types.d.ts.map +1 -0
  248. package/dist/db/schema/geo-location/index.d.ts +4 -0
  249. package/dist/db/schema/geo-location/index.d.ts.map +1 -0
  250. package/dist/db/schema/geo-location/registry.d.ts +114 -0
  251. package/dist/db/schema/geo-location/registry.d.ts.map +1 -0
  252. package/dist/db/schema/geo-location/schema.d.ts +58 -0
  253. package/dist/db/schema/geo-location/schema.d.ts.map +1 -0
  254. package/dist/db/schema/geo-location/table.d.ts +132 -0
  255. package/dist/db/schema/geo-location/table.d.ts.map +1 -0
  256. package/dist/db/schema/geo-location/types.d.ts +17 -0
  257. package/dist/db/schema/geo-location/types.d.ts.map +1 -0
  258. package/dist/db/schema/index.d.ts +85 -0
  259. package/dist/db/schema/index.d.ts.map +1 -0
  260. package/dist/db/schema/parser.d.ts +183 -0
  261. package/dist/db/schema/parser.d.ts.map +1 -0
  262. package/dist/db/schema/schemas.d.ts +383 -0
  263. package/dist/db/schema/schemas.d.ts.map +1 -0
  264. package/dist/db/schema/subject/index.d.ts +4 -0
  265. package/dist/db/schema/subject/index.d.ts.map +1 -0
  266. package/dist/db/schema/subject/registry.d.ts +141 -0
  267. package/dist/db/schema/subject/registry.d.ts.map +1 -0
  268. package/dist/db/schema/subject/schema.d.ts +56 -0
  269. package/dist/db/schema/subject/schema.d.ts.map +1 -0
  270. package/dist/db/schema/subject/table.d.ts +136 -0
  271. package/dist/db/schema/subject/table.d.ts.map +1 -0
  272. package/dist/db/schema/subject/types.d.ts +22 -0
  273. package/dist/db/schema/subject/types.d.ts.map +1 -0
  274. package/dist/db/schema/types.d.ts +136 -0
  275. package/dist/db/schema/types.d.ts.map +1 -0
  276. package/dist/db/utils/adapter-factory.d.ts +21 -0
  277. package/dist/db/utils/adapter-factory.d.ts.map +1 -0
  278. package/dist/db/utils/index.d.ts +10 -0
  279. package/dist/db/utils/index.d.ts.map +1 -0
  280. package/dist/db/utils.d.ts +4 -0
  281. package/dist/db/utils.d.ts.map +1 -0
  282. package/dist/error/codes.cjs +68 -0
  283. package/dist/error/codes.d.ts +175 -0
  284. package/dist/error/codes.d.ts.map +1 -0
  285. package/dist/error/codes.js +35 -0
  286. package/dist/error/error.d.ts +79 -0
  287. package/dist/error/error.d.ts.map +1 -0
  288. package/dist/error/index.cjs +172 -0
  289. package/dist/error/index.d.ts +9 -0
  290. package/dist/error/index.d.ts.map +1 -0
  291. package/dist/error/index.js +129 -0
  292. package/dist/error/logging.d.ts +25 -0
  293. package/dist/error/logging.d.ts.map +1 -0
  294. package/dist/error/pipeline.d.ts +19 -0
  295. package/dist/error/pipeline.d.ts.map +1 -0
  296. package/dist/error/recovery.d.ts +22 -0
  297. package/dist/error/recovery.d.ts.map +1 -0
  298. package/dist/error/results.d.ts +56 -0
  299. package/dist/error/results.d.ts.map +1 -0
  300. package/dist/index.cjs +4777 -0
  301. package/dist/index.d.ts +46 -0
  302. package/dist/index.d.ts.map +1 -0
  303. package/dist/index.js +4708 -0
  304. package/dist/init.d.ts +52 -0
  305. package/dist/init.d.ts.map +1 -0
  306. package/dist/init.test.d.ts +2 -0
  307. package/dist/init.test.d.ts.map +1 -0
  308. package/dist/integrations/index.cjs +281 -0
  309. package/dist/integrations/index.d.ts +7 -0
  310. package/dist/integrations/index.d.ts.map +1 -0
  311. package/dist/integrations/index.js +248 -0
  312. package/dist/integrations/next.cjs +131 -0
  313. package/dist/integrations/next.d.ts +29 -0
  314. package/dist/integrations/next.d.ts.map +1 -0
  315. package/dist/integrations/next.js +99 -0
  316. package/dist/integrations/react.cjs +182 -0
  317. package/dist/integrations/react.d.ts +257 -0
  318. package/dist/integrations/react.d.ts.map +1 -0
  319. package/dist/integrations/react.js +150 -0
  320. package/dist/plugins/geo/index.d.ts +2 -0
  321. package/dist/plugins/geo/index.d.ts.map +1 -0
  322. package/dist/test/utils.d.ts +65 -0
  323. package/dist/test/utils.d.ts.map +1 -0
  324. package/dist/types/api.d.ts +89 -0
  325. package/dist/types/api.d.ts.map +1 -0
  326. package/dist/types/context.d.ts +205 -0
  327. package/dist/types/context.d.ts.map +1 -0
  328. package/dist/types/helper.d.ts +78 -0
  329. package/dist/types/helper.d.ts.map +1 -0
  330. package/dist/types/index.cjs +19 -0
  331. package/dist/types/index.d.ts +6 -0
  332. package/dist/types/index.d.ts.map +1 -0
  333. package/dist/types/index.js +0 -0
  334. package/dist/types/options.d.ts +172 -0
  335. package/dist/types/options.d.ts.map +1 -0
  336. package/dist/types/plugins.d.ts +442 -0
  337. package/dist/types/plugins.d.ts.map +1 -0
  338. package/dist/utils/env.d.ts +77 -0
  339. package/dist/utils/env.d.ts.map +1 -0
  340. package/dist/utils/hide-metadata.d.ts +22 -0
  341. package/dist/utils/hide-metadata.d.ts.map +1 -0
  342. package/dist/utils/index.cjs +268 -0
  343. package/dist/utils/index.d.ts +18 -0
  344. package/dist/utils/index.d.ts.map +1 -0
  345. package/dist/utils/index.js +210 -0
  346. package/dist/utils/ip.d.ts +10 -0
  347. package/dist/utils/ip.d.ts.map +1 -0
  348. package/dist/utils/json.d.ts +14 -0
  349. package/dist/utils/json.d.ts.map +1 -0
  350. package/dist/utils/logger.d.ts +108 -0
  351. package/dist/utils/logger.d.ts.map +1 -0
  352. package/dist/utils/url.d.ts +87 -0
  353. package/dist/utils/url.d.ts.map +1 -0
  354. package/dist/utils/wildcard.d.ts +46 -0
  355. package/dist/utils/wildcard.d.ts.map +1 -0
  356. package/knip.json +37 -0
  357. package/package.json +146 -0
  358. package/rslib.config.ts +104 -0
  359. package/src/api/call.ts +177 -0
  360. package/src/api/index.ts +303 -0
  361. package/src/api/middlewares/index.ts +38 -0
  362. package/src/api/middlewares/origin-check.ts +260 -0
  363. package/src/api/middlewares/validate-context.ts +175 -0
  364. package/src/api/routes/__tests__/consent.test.ts +270 -0
  365. package/src/api/routes/__tests__/status.test.ts +36 -0
  366. package/src/api/routes/error.ts +130 -0
  367. package/src/api/routes/generate-consent-receipt.ts +244 -0
  368. package/src/api/routes/get-consent-history.ts +128 -0
  369. package/src/api/routes/get-consent-policy.ts +327 -0
  370. package/src/api/routes/get-consent.ts +230 -0
  371. package/src/api/routes/index.ts +12 -0
  372. package/src/api/routes/ok.ts +45 -0
  373. package/src/api/routes/set-consent.ts +328 -0
  374. package/src/api/routes/show-consent-banner.ts +149 -0
  375. package/src/api/routes/status.ts +62 -0
  376. package/src/api/routes/verify-consent.ts +272 -0
  377. package/src/api/routes/withdraw-consent.ts +293 -0
  378. package/src/api/to-endpoints.ts +371 -0
  379. package/src/client/index.ts +471 -0
  380. package/src/client/types.ts +458 -0
  381. package/src/core.test.ts +303 -0
  382. package/src/core.ts +267 -0
  383. package/src/db/adapters/drizzle-adapter/drizzle-adapter.ts +711 -0
  384. package/src/db/adapters/drizzle-adapter/index.ts +1 -0
  385. package/src/db/adapters/kysely-adapter/dialect.ts +192 -0
  386. package/src/db/adapters/kysely-adapter/index.ts +3 -0
  387. package/src/db/adapters/kysely-adapter/kysely-adapter.ts +1168 -0
  388. package/src/db/adapters/kysely-adapter/types.ts +307 -0
  389. package/src/db/adapters/memory-adapter/index.ts +1 -0
  390. package/src/db/adapters/memory-adapter/memory-adapter.ts +648 -0
  391. package/src/db/adapters/prisma-adapter/index.ts +1 -0
  392. package/src/db/adapters/prisma-adapter/prisma-adapter.ts +586 -0
  393. package/src/db/adapters/types.ts +203 -0
  394. package/src/db/adapters/utils.ts +51 -0
  395. package/src/db/core/fields/field-factory.ts +804 -0
  396. package/src/db/core/fields/field-inference.ts +298 -0
  397. package/src/db/core/fields/field-options-integration.ts +135 -0
  398. package/src/db/core/fields/field-types.ts +233 -0
  399. package/src/db/core/fields/id-generator.ts +57 -0
  400. package/src/db/core/fields/index.ts +56 -0
  401. package/src/db/core/fields/superjson-utils.ts +155 -0
  402. package/src/db/core/fields/zod-fields.ts +269 -0
  403. package/src/db/core/get-schema.ts +102 -0
  404. package/src/db/core/types.ts +52 -0
  405. package/src/db/create-registry.ts +31 -0
  406. package/src/db/hooks/create-hooks.ts +88 -0
  407. package/src/db/hooks/index.ts +39 -0
  408. package/src/db/hooks/types.ts +164 -0
  409. package/src/db/hooks/update-hooks.ts +91 -0
  410. package/src/db/hooks/update-many-hooks.ts +176 -0
  411. package/src/db/hooks/utils.ts +151 -0
  412. package/src/db/hooks/with-hooks-factory.ts +68 -0
  413. package/src/db/index.ts +32 -0
  414. package/src/db/migration/get-migration.ts +89 -0
  415. package/src/db/migration/get-schema/get-schema.ts +44 -0
  416. package/src/db/migration/get-schema/index.ts +20 -0
  417. package/src/db/migration/get-schema/process-fields.ts +66 -0
  418. package/src/db/migration/get-schema/process-tables.ts +68 -0
  419. package/src/db/migration/get-schema/types.ts +18 -0
  420. package/src/db/migration/index.ts +18 -0
  421. package/src/db/migration/migration-builders.ts +170 -0
  422. package/src/db/migration/migration-execution.ts +79 -0
  423. package/src/db/migration/schema-comparison.ts +216 -0
  424. package/src/db/migration/type-mapping.ts +255 -0
  425. package/src/db/migration/types.ts +46 -0
  426. package/src/db/schema/audit-log/index.ts +3 -0
  427. package/src/db/schema/audit-log/registry.ts +228 -0
  428. package/src/db/schema/audit-log/schema.ts +46 -0
  429. package/src/db/schema/audit-log/table.ts +185 -0
  430. package/src/db/schema/audit-log/types.ts +29 -0
  431. package/src/db/schema/consent/index.ts +3 -0
  432. package/src/db/schema/consent/registry.ts +381 -0
  433. package/src/db/schema/consent/schema.ts +65 -0
  434. package/src/db/schema/consent/table.ts +220 -0
  435. package/src/db/schema/consent/types.ts +39 -0
  436. package/src/db/schema/consent-geo-location/index.ts +3 -0
  437. package/src/db/schema/consent-geo-location/registry.ts +124 -0
  438. package/src/db/schema/consent-geo-location/schema.ts +51 -0
  439. package/src/db/schema/consent-geo-location/table.ts +169 -0
  440. package/src/db/schema/consent-geo-location/types.ts +21 -0
  441. package/src/db/schema/consent-policy/index.ts +3 -0
  442. package/src/db/schema/consent-policy/registry.ts +313 -0
  443. package/src/db/schema/consent-policy/schema.ts +47 -0
  444. package/src/db/schema/consent-policy/table.ts +141 -0
  445. package/src/db/schema/consent-policy/types.ts +28 -0
  446. package/src/db/schema/consent-purpose/index.ts +3 -0
  447. package/src/db/schema/consent-purpose/registry.ts +188 -0
  448. package/src/db/schema/consent-purpose/schema.ts +58 -0
  449. package/src/db/schema/consent-purpose/table.ts +154 -0
  450. package/src/db/schema/consent-purpose/types.ts +16 -0
  451. package/src/db/schema/consent-purpose-junction/index.ts +3 -0
  452. package/src/db/schema/consent-purpose-junction/registry.ts +189 -0
  453. package/src/db/schema/consent-purpose-junction/schema.ts +49 -0
  454. package/src/db/schema/consent-purpose-junction/table.ts +142 -0
  455. package/src/db/schema/consent-purpose-junction/types.ts +14 -0
  456. package/src/db/schema/consent-record/index.ts +3 -0
  457. package/src/db/schema/consent-record/registry.ts +209 -0
  458. package/src/db/schema/consent-record/schema.ts +42 -0
  459. package/src/db/schema/consent-record/table.ts +124 -0
  460. package/src/db/schema/consent-record/types.ts +21 -0
  461. package/src/db/schema/consent-withdrawal/index.ts +3 -0
  462. package/src/db/schema/consent-withdrawal/registry.ts +219 -0
  463. package/src/db/schema/consent-withdrawal/schema.ts +48 -0
  464. package/src/db/schema/consent-withdrawal/table.ts +181 -0
  465. package/src/db/schema/consent-withdrawal/types.ts +29 -0
  466. package/src/db/schema/definition.ts +196 -0
  467. package/src/db/schema/domain/index.ts +3 -0
  468. package/src/db/schema/domain/registry.ts +272 -0
  469. package/src/db/schema/domain/schema.ts +43 -0
  470. package/src/db/schema/domain/table.ts +137 -0
  471. package/src/db/schema/domain/types.ts +27 -0
  472. package/src/db/schema/geo-location/index.ts +3 -0
  473. package/src/db/schema/geo-location/registry.ts +159 -0
  474. package/src/db/schema/geo-location/schema.ts +45 -0
  475. package/src/db/schema/geo-location/table.ts +148 -0
  476. package/src/db/schema/geo-location/types.ts +18 -0
  477. package/src/db/schema/index.ts +96 -0
  478. package/src/db/schema/parser.ts +417 -0
  479. package/src/db/schema/schemas.ts +35 -0
  480. package/src/db/schema/subject/index.ts +3 -0
  481. package/src/db/schema/subject/registry.ts +371 -0
  482. package/src/db/schema/subject/schema.ts +41 -0
  483. package/src/db/schema/subject/table.ts +139 -0
  484. package/src/db/schema/subject/types.ts +22 -0
  485. package/src/db/schema/types.ts +154 -0
  486. package/src/db/utils/adapter-factory.ts +64 -0
  487. package/src/db/utils/index.ts +10 -0
  488. package/src/db/utils.ts +42 -0
  489. package/src/docs/ADVANCED_JSON_HANDLING.md +99 -0
  490. package/src/docs/neverthrow.md +171 -0
  491. package/src/error/codes.ts +201 -0
  492. package/src/error/error.ts +145 -0
  493. package/src/error/index.ts +23 -0
  494. package/src/error/logging.ts +52 -0
  495. package/src/error/pipeline.ts +57 -0
  496. package/src/error/recovery.ts +45 -0
  497. package/src/error/results.ts +100 -0
  498. package/src/index.ts +79 -0
  499. package/src/init.test.ts +235 -0
  500. package/src/init.ts +261 -0
  501. package/src/integrations/index.ts +10 -0
  502. package/src/integrations/next.ts +136 -0
  503. package/src/integrations/react.ts +567 -0
  504. package/src/plugins/geo/index.ts +563 -0
  505. package/src/test/utils.ts +244 -0
  506. package/src/types/api.ts +101 -0
  507. package/src/types/context.ts +235 -0
  508. package/src/types/helper.ts +87 -0
  509. package/src/types/index.ts +5 -0
  510. package/src/types/options.ts +189 -0
  511. package/src/types/plugins.ts +538 -0
  512. package/src/utils/env.ts +103 -0
  513. package/src/utils/hide-metadata.ts +21 -0
  514. package/src/utils/index.ts +17 -0
  515. package/src/utils/ip.ts +45 -0
  516. package/src/utils/json.ts +19 -0
  517. package/src/utils/logger.ts +252 -0
  518. package/src/utils/url.ts +194 -0
  519. package/src/utils/wildcard.ts +253 -0
  520. package/tsconfig.json +12 -0
  521. package/vitest.config.ts +14 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-registry.d.ts","sourceRoot":"","sources":["../../src/db/create-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAgBvD,eAAO,MAAM,cAAc,GAAI,KAAK,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAeu+D,CAAC;yBAA8B,CAAC;iBAAsB,CAAC;eAAoB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBAA1N,CAAC;kBAAuB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CADp6D,CAAC"}
@@ -0,0 +1,32 @@
1
+ import type { Adapter } from '../adapters/types';
2
+ import type { CreateWithHooksProps, HookContext } from './types';
3
+ /**
4
+ * Creates a record with hooks applied before and after creation.
5
+ *
6
+ * @typeParam TInputData - Type of the data being created
7
+ * @typeParam TOutputData - Type of the data returned after creation
8
+ *
9
+ * @param adapter - The database adapter to use
10
+ * @param ctx - Context containing hooks and options
11
+ * @param props - Properties for the create operation
12
+ * @returns The created record or null if a hook aborted the operation
13
+ *
14
+ * @remarks
15
+ * This function orchestrates the entity creation process, executing hooks
16
+ * at appropriate times to allow validation, transformation, and post-processing.
17
+ * It supports both standard adapter-based creation and custom creation functions.
18
+ *
19
+ * @example
20
+ * ```typescript
21
+ * const subject = await createWithHook(
22
+ * mysqlAdapter,
23
+ * { hooks: subjectHooks, options: config },
24
+ * {
25
+ * data: { name: 'Alice' },
26
+ * model: 'subject'
27
+ * }
28
+ * );
29
+ * ```
30
+ */
31
+ export declare function createWithHook<TInputData extends Record<string, unknown> = Record<string, unknown>, TOutputData extends Record<string, unknown> = TInputData>(adapter: Adapter, ctx: HookContext, props: CreateWithHooksProps<TInputData>): Promise<TOutputData | null>;
32
+ //# sourceMappingURL=create-hooks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-hooks.d.ts","sourceRoot":"","sources":["../../../src/db/hooks/create-hooks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAEjD,OAAO,KAAK,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAGjE;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAsB,cAAc,CACnC,UAAU,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACpE,WAAW,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,UAAU,EAExD,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,WAAW,EAChB,KAAK,EAAE,oBAAoB,CAAC,UAAU,CAAC,GACrC,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CA+C7B"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Database Hooks Module
3
+ *
4
+ * A comprehensive system for intercepting, validating, and transforming data
5
+ * during database operations. Hooks provide a powerful way to implement
6
+ * cross-cutting concerns like validation, authorization, and data enrichment.
7
+ *
8
+ * This module provides:
9
+ * - Type definitions for hooks and their operations
10
+ * - Core hook processing utilities
11
+ * - Operation-specific hook implementations (create, update, updateMany)
12
+ * - A factory for generating hook-enabled database operations
13
+ *
14
+ * @module db/hooks
15
+ *
16
+ * @example
17
+ * ```typescript
18
+ * import { getWithHooks } from '~/db/hooks';
19
+ * import { adapter } from '~/adapters';
20
+ *
21
+ * // Create hook-enabled database operations
22
+ * const { createWithHooks } = getWithHooks(adapter, {
23
+ * options: config,
24
+ * hooks: config.databaseHooks || []
25
+ * });
26
+ *
27
+ * // Use hooks with database operations
28
+ * const subject = await createWithHooks({
29
+ * data: { name: 'Alice', email: 'alice@example.com' },
30
+ * model: 'subject'
31
+ * });
32
+ * ```
33
+ */
34
+ export * from './types';
35
+ export * from './utils';
36
+ export * from './create-hooks';
37
+ export * from './update-hooks';
38
+ export * from './update-many-hooks';
39
+ export * from './with-hooks-factory';
40
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/db/hooks/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC"}
@@ -0,0 +1,133 @@
1
+ import type { Where } from '../adapters/types';
2
+ import type { C15TOptions, GenericEndpointContext } from '../../types';
3
+ import type { EntityName, EntityTypeMap } from '../core/types';
4
+ /**
5
+ * Defines execution phases when hooks can run in the database operation lifecycle.
6
+ */
7
+ export type HookPhase = 'before' | 'after';
8
+ /**
9
+ * Defines database operations that can have hooks attached.
10
+ */
11
+ export type HookOperation = 'create' | 'update';
12
+ /**
13
+ * Result types for hook execution that control the flow of operations.
14
+ *
15
+ * @typeParam TData - The data type being processed by the hook
16
+ *
17
+ * @remarks
18
+ * Hook functions can return different result types to control operation flow:
19
+ * - `{ kind: 'abort' }` - Abort the operation entirely
20
+ * - `{ kind: 'transform', data: TData }` - Transform the data and continue
21
+ * - `{ kind: 'continue' }` - Continue with unchanged data
22
+ *
23
+ * @example
24
+ * ```typescript
25
+ * // Abort if validation fails
26
+ * if (!isValid(data)) {
27
+ * return { kind: 'abort' };
28
+ * }
29
+ * ```
30
+ */
31
+ export type HookResult<TData> = {
32
+ kind: 'abort';
33
+ } | {
34
+ kind: 'transform';
35
+ data: TData;
36
+ } | {
37
+ kind: 'continue';
38
+ };
39
+ /**
40
+ * Hook function for a specific entity type, providing before/after hooks
41
+ * for create and update operations.
42
+ *
43
+ * @typeParam TEntityName - The entity type this hook applies to
44
+ *
45
+ * @remarks
46
+ * ModelHook provides a structured way to define hooks for different
47
+ * database operations on a specific entity type.
48
+ *
49
+ * @example
50
+ * ```typescript
51
+ * const subjectHook: ModelHook<'subject'> = {
52
+ * create: {
53
+ * before: (subjectData) => ({
54
+ * kind: 'transform',
55
+ * data: { ...subjectData, createdAt: new Date() }
56
+ * })
57
+ * }
58
+ * };
59
+ * ```
60
+ */
61
+ export interface ModelHook<TEntityName extends EntityName = EntityName> {
62
+ create?: {
63
+ before?: (data: EntityTypeMap[TEntityName], context?: GenericEndpointContext) => Promise<HookResult<EntityTypeMap[TEntityName]> | undefined> | HookResult<EntityTypeMap[TEntityName]> | undefined;
64
+ after?: (data: EntityTypeMap[TEntityName], context?: GenericEndpointContext) => Promise<void> | void;
65
+ };
66
+ update?: {
67
+ before?: (data: Partial<EntityTypeMap[TEntityName]>, context?: GenericEndpointContext) => Promise<HookResult<Partial<EntityTypeMap[TEntityName]>> | undefined> | HookResult<Partial<EntityTypeMap[TEntityName]>> | undefined;
68
+ after?: (data: EntityTypeMap[TEntityName], context?: GenericEndpointContext) => Promise<void> | void;
69
+ };
70
+ }
71
+ /**
72
+ * A collection of hooks for different entity types in the database.
73
+ *
74
+ * @remarks
75
+ * This is the primary way to register hooks in the system.
76
+ */
77
+ export type DatabaseHook = {
78
+ [TEntityName in EntityName]?: ModelHook<TEntityName>;
79
+ };
80
+ /**
81
+ * Context object containing application options and registered hooks.
82
+ */
83
+ export interface HookContext {
84
+ hooks: DatabaseHook[];
85
+ options: C15TOptions;
86
+ }
87
+ /**
88
+ * Interface for defining custom operation functions that can be used
89
+ * in place of or alongside standard database operations.
90
+ *
91
+ * @typeParam TInputData - The input data type for the operation
92
+ * @typeParam TOutputData - The output data type for the operation
93
+ *
94
+ * @remarks
95
+ * Custom functions allow for specialized behavior when standard
96
+ * CRUD operations aren't sufficient.
97
+ */
98
+ export interface CustomOperationFunction<TInputData extends Record<string, unknown> = Record<string, unknown>, TOutputData = TInputData> {
99
+ fn: (data: TOutputData) => Promise<TOutputData | null> | TOutputData | null;
100
+ executeMainFn?: boolean;
101
+ }
102
+ /**
103
+ * Properties for creating a record with hooks.
104
+ *
105
+ * @typeParam TData - The data type being created
106
+ *
107
+ * @remarks
108
+ * This is the parameter object for the createWithHook function.
109
+ */
110
+ export interface CreateWithHooksProps<TData extends Record<string, unknown> = Record<string, unknown>> {
111
+ data: TData;
112
+ model: EntityName;
113
+ customFn?: CustomOperationFunction<TData>;
114
+ context?: GenericEndpointContext;
115
+ }
116
+ /**
117
+ * Properties for updating records with hooks.
118
+ *
119
+ * @typeParam TInputData - The input data type for the update
120
+ * @typeParam TOutputData - The expected output data type
121
+ * @typeParam TResultData - The final result data type
122
+ *
123
+ * @remarks
124
+ * This is the parameter object for updateWithHooks and updateManyWithHooks functions.
125
+ */
126
+ export interface UpdateWithHooksProps<TInputData extends Record<string, unknown> = Record<string, unknown>, TOutputData = TInputData, TResultData = TOutputData> {
127
+ data: Partial<TInputData>;
128
+ where: Where<EntityName>;
129
+ model: EntityName;
130
+ customFn?: CustomOperationFunction<Partial<TInputData>, TResultData>;
131
+ context?: GenericEndpointContext;
132
+ }
133
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/db/hooks/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ import type { Adapter } from '../adapters/types';
2
+ import type { HookContext, UpdateWithHooksProps } from './types';
3
+ /**
4
+ * Updates a record with hooks applied before and after the update operation.
5
+ *
6
+ * @typeParam TInputData - Type of the data being updated
7
+ * @typeParam TOutputData - Type of the data returned after update
8
+ *
9
+ * @param adapter - The database adapter to use
10
+ * @param ctx - Context containing hooks and options
11
+ * @param props - Properties for the update operation
12
+ * @returns The updated record or null if a hook aborted the operation
13
+ *
14
+ * @remarks
15
+ * This function orchestrates the entity update process, executing hooks
16
+ * at appropriate times to allow validation, transformation, and post-processing.
17
+ * It supports both standard adapter-based updates and custom update functions.
18
+ *
19
+ * @example
20
+ * ```typescript
21
+ * const updatedSubject = await updateWithHooks(
22
+ * mysqlAdapter,
23
+ * { hooks: subjectHooks, options: config },
24
+ * {
25
+ * data: { status: 'active' },
26
+ * where: { id: 'sub_x1pftyoufsm7xgo1kv' },
27
+ * model: 'subject'
28
+ * }
29
+ * );
30
+ * ```
31
+ */
32
+ export declare function updateWithHooks<TInputData extends Record<string, unknown> = Record<string, unknown>, TOutputData extends Record<string, unknown> = TInputData>(adapter: Adapter, ctx: HookContext, props: UpdateWithHooksProps<TInputData, TOutputData>): Promise<TOutputData | null>;
33
+ //# sourceMappingURL=update-hooks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-hooks.d.ts","sourceRoot":"","sources":["../../../src/db/hooks/update-hooks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAEjD,OAAO,KAAK,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAGjE;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAsB,eAAe,CACpC,UAAU,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACpE,WAAW,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,UAAU,EAExD,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,WAAW,EAChB,KAAK,EAAE,oBAAoB,CAAC,UAAU,EAAE,WAAW,CAAC,GAClD,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAiD7B"}
@@ -0,0 +1,55 @@
1
+ import type { Adapter } from '../adapters/types';
2
+ import type { HookContext, UpdateWithHooksProps } from './types';
3
+ /**
4
+ * Updates multiple records with hooks applied before and after the batch update.
5
+ *
6
+ * This function orchestrates the batch update process, executing hooks
7
+ * at appropriate times to allow validation, transformation, and post-processing
8
+ * for multiple records simultaneously.
9
+ *
10
+ * @template TInputData - Type of the data being updated
11
+ * @template TOutputData - Type of the data returned after update
12
+ *
13
+ * @param adapter - The database adapter to use
14
+ * @param ctx - Context containing hooks and options
15
+ * @param props - Properties for the updateMany operation
16
+ *
17
+ * @returns The updated records or null if a hook aborted the operation
18
+ *
19
+ * @example
20
+ * ```typescript
21
+ * // Batch update subjects
22
+ * const updatedSubjects = await updateManyWithHooks(
23
+ * mysqlAdapter,
24
+ * { hooks: subjectHooks, options: config },
25
+ * {
26
+ * data: { isVerified: true },
27
+ * where: { emailDomain: 'example.com' },
28
+ * model: 'subject'
29
+ * }
30
+ * );
31
+ *
32
+ * // With custom function for complex batch processing
33
+ * const updatedPosts = await updateManyWithHooks(
34
+ * mysqlAdapter,
35
+ * { hooks: postHooks, options: config },
36
+ * {
37
+ * data: { isArchived: true },
38
+ * where: { createdAt: { lt: oneYearAgo } },
39
+ * model: 'post',
40
+ * customFn: {
41
+ * fn: async (data) => {
42
+ * // Get posts to be archived
43
+ * const postsToArchive = await postService.findOldPosts();
44
+ * // Custom batch processing
45
+ * const archivedPosts = await postService.batchArchive(postsToArchive, data);
46
+ * return archivedPosts;
47
+ * },
48
+ * executeMainFn: false // Skip standard update as custom function handles it
49
+ * }
50
+ * }
51
+ * );
52
+ * ```
53
+ */
54
+ export declare function updateManyWithHooks<TInputData extends Record<string, unknown> = Record<string, unknown>, TOutputData extends Record<string, unknown> = TInputData>(adapter: Adapter, ctx: HookContext, props: UpdateWithHooksProps<TInputData, TOutputData>): Promise<TOutputData[] | null>;
55
+ //# sourceMappingURL=update-many-hooks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-many-hooks.d.ts","sourceRoot":"","sources":["../../../src/db/hooks/update-many-hooks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAEnD,OAAO,KAAK,EAEX,WAAW,EACX,oBAAoB,EACpB,MAAM,SAAS,CAAC;AA4DjB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AACH,wBAAsB,mBAAmB,CACxC,UAAU,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACpE,WAAW,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,UAAU,EAExD,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,WAAW,EAChB,KAAK,EAAE,oBAAoB,CAAC,UAAU,EAAE,WAAW,CAAC,GAClD,OAAO,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,CAmD/B"}
@@ -0,0 +1,62 @@
1
+ import type { GenericEndpointContext } from '../../types';
2
+ import type { EntityName } from '../core/types';
3
+ import type { DatabaseHook, HookOperation, HookPhase } from './types';
4
+ /**
5
+ * Process hooks for a given phase and operation.
6
+ *
7
+ * @typeParam TEntityData - Type of the entity data being processed
8
+ *
9
+ * @param data - The data to process through hooks
10
+ * @param model - The entity type/model name
11
+ * @param operation - The operation being performed (create/update)
12
+ * @param phase - The hook execution phase (before/after)
13
+ * @param hooks - Array of hook sets to process
14
+ * @param context - Optional request context
15
+ * @returns The processed data, potentially transformed, or null if aborted
16
+ *
17
+ * @remarks
18
+ * This core utility function handles the execution of hooks for various
19
+ * database operations. It traverses all registered hooks for the specified
20
+ * entity, operation, and phase, applying transformations or aborting as needed.
21
+ *
22
+ * @example
23
+ * ```typescript
24
+ * const processedData = await processHooks(
25
+ * { name: 'Alice' },
26
+ * 'subject',
27
+ * 'create',
28
+ * 'before',
29
+ * registeredHooks
30
+ * );
31
+ * ```
32
+ */
33
+ export declare function processHooks<TEntityName extends EntityName, TEntityData extends Record<string, unknown>>(data: TEntityData, model: TEntityName, operation: HookOperation, phase: HookPhase, hooks: DatabaseHook[], context?: GenericEndpointContext): Promise<TEntityData | null>;
34
+ /**
35
+ * Process hooks for multiple records.
36
+ *
37
+ * @typeParam TEntityName - Type of the entity name
38
+ * @typeParam TEntityData - Type of the entity data
39
+ *
40
+ * @param records - Array of records to process
41
+ * @param model - The entity type/model name
42
+ * @param hooks - Array of hook sets to process
43
+ * @param context - Optional request context
44
+ * @returns Promise that resolves when all hooks have been processed
45
+ *
46
+ * @remarks
47
+ * This utility function handles processing after-update hooks for a batch
48
+ * of records, ensuring each record goes through the appropriate hooks.
49
+ *
50
+ * @example
51
+ * ```typescript
52
+ * // Process 'after update' hooks for multiple subjects
53
+ * await processAfterHooksForMany(
54
+ * updatedSubjects,
55
+ * 'subject',
56
+ * registeredHooks,
57
+ * { batchId: 'sub_x1pftyoufsm7xgo1kv' }
58
+ * );
59
+ * ```
60
+ */
61
+ export declare function processAfterHooksForMany<TEntityName extends EntityName, TEntityData extends Record<string, unknown>>(records: TEntityData[], model: TEntityName, hooks: DatabaseHook[], context?: GenericEndpointContext): Promise<void>;
62
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/db/hooks/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AACtD,OAAO,KAAK,EAAE,UAAU,EAAiB,MAAM,eAAe,CAAC;AAC/D,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEtE;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAsB,YAAY,CACjC,WAAW,SAAS,UAAU,EAC9B,WAAW,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAE3C,IAAI,EAAE,WAAW,EACjB,KAAK,EAAE,WAAW,EAClB,SAAS,EAAE,aAAa,EACxB,KAAK,EAAE,SAAS,EAChB,KAAK,EAAE,YAAY,EAAE,EACrB,OAAO,CAAC,EAAE,sBAAsB,GAC9B,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAuD7B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAsB,wBAAwB,CAC7C,WAAW,SAAS,UAAU,EAC9B,WAAW,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAE3C,OAAO,EAAE,WAAW,EAAE,EACtB,KAAK,EAAE,WAAW,EAClB,KAAK,EAAE,YAAY,EAAE,EACrB,OAAO,CAAC,EAAE,sBAAsB,GAC9B,OAAO,CAAC,IAAI,CAAC,CAef"}
@@ -0,0 +1,33 @@
1
+ import type { Adapter } from '../adapters/types';
2
+ import type { CreateWithHooksProps, HookContext, UpdateWithHooksProps } from './types';
3
+ /**
4
+ * Creates a set of functions that apply hooks before and after database operations.
5
+ *
6
+ * @param adapter - The database adapter to use for operations
7
+ * @param ctx - Context object containing options and hooks
8
+ * @returns Object with hook-enabled database operation functions
9
+ *
10
+ * @remarks
11
+ * This factory function generates hook-enabled versions of common database operations
12
+ * (create, update, updateMany), allowing for consistent hook processing across
13
+ * the application.
14
+ *
15
+ * @example
16
+ * ```typescript
17
+ * const { createWithHooks } = getWithHooks(adapter, {
18
+ * options: c15tOptions,
19
+ * hooks: c15tOptions.databaseHooks || []
20
+ * });
21
+ *
22
+ * const subject = await createWithHooks({
23
+ * data: { name: 'Alice' },
24
+ * model: 'subject'
25
+ * });
26
+ * ```
27
+ */
28
+ export declare function getWithHooks(adapter: Adapter, ctx: HookContext): {
29
+ createWithHooks: <TInputData extends Record<string, unknown>, TOutputData extends Record<string, unknown> = TInputData>({ data, model, customFn, context, }: CreateWithHooksProps<TInputData>) => Promise<TOutputData | null>;
30
+ updateWithHooks: <TInputData extends Record<string, unknown>, TOutputData extends Record<string, unknown> = TInputData>(props: UpdateWithHooksProps<TInputData, TOutputData>) => Promise<TOutputData | null>;
31
+ updateManyWithHooks: <TInputData extends Record<string, unknown>, TOutputData extends Record<string, unknown> = TInputData>(props: UpdateWithHooksProps<TInputData, TOutputData>) => Promise<TOutputData[] | null>;
32
+ };
33
+ //# sourceMappingURL=with-hooks-factory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"with-hooks-factory.d.ts","sourceRoot":"","sources":["../../../src/db/hooks/with-hooks-factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAEnD,OAAO,KAAK,EACX,oBAAoB,EACpB,WAAW,EACX,oBAAoB,EACpB,MAAM,SAAS,CAAC;AAIjB;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,WAAW;sBAG5D,UAAU,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC1C,WAAW,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,oDAMzC,oBAAoB,CAAC,UAAU,CAAC;sBASlC,UAAU,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC1C,WAAW,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,sBAEpC,oBAAoB,CAAC,UAAU,EAAE,WAAW,CAAC;0BAIpD,UAAU,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC1C,WAAW,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,sBAEpC,oBAAoB,CAAC,UAAU,EAAE,WAAW,CAAC;EAGtD"}