@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,154 @@
1
+ import type { C15TOptions } from '../../types';
2
+ import type { EntityInput, EntityName } from '../core/types';
3
+ import type { C15TDBSchema } from '../schema/definition';
4
+ import type { KyselyAdapterConfig } from './kysely-adapter';
5
+ /**
6
+ * Type representing the fields of a database table for a specific entity
7
+ */
8
+ export type TableFields<EntityType extends EntityName> = C15TDBSchema[EntityType]['fields'];
9
+ /**
10
+ * Type representing the possible value types that can be used in query conditions
11
+ */
12
+ export type Value = string | number | boolean | string[] | number[] | Date | null;
13
+ /**
14
+ * Type representing the comparison operators available for query conditions
15
+ */
16
+ export type ComparisonOperator = 'eq' | 'ne' | 'lt' | 'lte' | 'gt' | 'gte' | 'in' | 'contains' | 'starts_with' | 'ends_with' | 'ilike';
17
+ /**
18
+ * Type representing the logical connectors for combining query conditions
19
+ */
20
+ export type LogicalConnector = 'AND' | 'OR';
21
+ /**
22
+ * Type representing a single query condition
23
+ */
24
+ export type WhereCondition<EntityType extends EntityName> = {
25
+ /** The comparison operator to use (defaults to 'eq') */
26
+ operator?: ComparisonOperator;
27
+ /** The value to compare against */
28
+ value: Value;
29
+ /** The field to apply the condition to */
30
+ field: keyof TableFields<EntityType> | 'id';
31
+ /** The logical connector to use with previous conditions (defaults to 'AND') */
32
+ connector?: LogicalConnector;
33
+ };
34
+ /**
35
+ * Type representing a complete where clause for database queries
36
+ */
37
+ export type Where<EntityType extends EntityName> = WhereCondition<EntityType>[];
38
+ /**
39
+ * Type representing sorting options for queries
40
+ */
41
+ export type SortOptions<EntityType extends EntityName> = {
42
+ /** The field to sort by */
43
+ field: keyof TableFields<EntityType> | 'id';
44
+ /** The sort direction */
45
+ direction: 'asc' | 'desc';
46
+ };
47
+ /**
48
+ * Type representing the result of a schema creation operation
49
+ */
50
+ export type AdapterSchemaCreation = {
51
+ /** The code to be inserted into the file */
52
+ code: string;
53
+ /** The path to the file */
54
+ path: string;
55
+ /** Whether to append to existing file */
56
+ append?: boolean;
57
+ /** Whether to overwrite existing file */
58
+ overwrite?: boolean;
59
+ };
60
+ /**
61
+ * Interface defining the contract for database adapters
62
+ */
63
+ export interface Adapter {
64
+ /** Unique identifier for the adapter */
65
+ id: string;
66
+ /** Creates a new record in the database */
67
+ create: <Model extends EntityName, Data extends Record<string, unknown>, Result extends TableFields<Model>>(data: {
68
+ model: Model;
69
+ data: Data;
70
+ select?: Array<keyof Result>;
71
+ }) => Promise<Result>;
72
+ /** Finds a single record matching the where conditions */
73
+ findOne: <Model extends EntityName, Result extends TableFields<Model>>(data: {
74
+ model: Model;
75
+ where: Where<Model>;
76
+ select?: Array<keyof Result>;
77
+ sortBy?: SortOptions<Model>;
78
+ }) => Promise<Result | null>;
79
+ /** Finds multiple records matching the where conditions */
80
+ findMany: <Model extends EntityName>(data: {
81
+ model: Model;
82
+ where?: Where<Model>;
83
+ limit?: number;
84
+ sortBy?: SortOptions<Model>;
85
+ offset?: number;
86
+ }) => Promise<TableFields<Model>[]>;
87
+ /** Counts records matching the where conditions */
88
+ count: <Model extends EntityName>(data: {
89
+ model: Model;
90
+ where?: Where<Model>;
91
+ }) => Promise<number>;
92
+ /** Updates a single record matching the where conditions */
93
+ update: <Model extends EntityName, Result extends TableFields<Model>>(data: {
94
+ model: Model;
95
+ where: Where<Model>;
96
+ update: EntityInput<Model>;
97
+ }) => Promise<Result | null>;
98
+ /** Updates multiple records matching the where conditions */
99
+ updateMany: <Model extends EntityName, Result extends TableFields<Model>>(data: {
100
+ model: Model;
101
+ where: Where<Model>;
102
+ update: Partial<EntityInput<Model>>;
103
+ }) => Promise<Result[]>;
104
+ /** Deletes a single record matching the where conditions */
105
+ delete: <Model extends EntityName>(data: {
106
+ model: Model;
107
+ where: Where<Model>;
108
+ }) => Promise<void>;
109
+ /** Deletes multiple records matching the where conditions */
110
+ deleteMany: <Model extends EntityName>(data: {
111
+ model: Model;
112
+ where: Where<Model>;
113
+ }) => Promise<number>;
114
+ /**
115
+ * Executes a function within a database transaction
116
+ *
117
+ * This method allows multiple database operations to be executed in a single atomic transaction.
118
+ * If any operation within the transaction fails, all operations are rolled back.
119
+ *
120
+ * @typeParam ResultType - The type of data returned by the transaction
121
+ * @param data - The transaction data containing the callback function
122
+ * @returns A promise that resolves with the result of the callback function
123
+ * @throws {Error} If the transaction fails to complete
124
+ *
125
+ * @example
126
+ * ```typescript
127
+ * const result = await adapter.transaction({
128
+ * callback: async (tx) => {
129
+ * const subject = await tx.create({
130
+ * model: 'subject',
131
+ * data: { name: 'John Doe' }
132
+ * });
133
+ * await tx.create({
134
+ * model: 'profile',
135
+ * data: { subjectId: subject.id, bio: 'Test bio' }
136
+ * });
137
+ * return subject;
138
+ * }
139
+ * });
140
+ * ```
141
+ */
142
+ transaction: <ResultType>(data: {
143
+ callback: (transactionAdapter: Adapter) => Promise<ResultType>;
144
+ }) => Promise<ResultType>;
145
+ /** Optional method to create database schema */
146
+ createSchema?: (options: C15TOptions, file?: string) => Promise<AdapterSchemaCreation>;
147
+ /** Optional adapter-specific configuration */
148
+ options?: KyselyAdapterConfig | Record<string, unknown>;
149
+ }
150
+ /**
151
+ * Type definition for an adapter factory function
152
+ */
153
+ export type AdapterInstance = (options: C15TOptions) => Adapter;
154
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/db/adapters/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ import type { Field, Primitive } from '../core/fields/field-types';
2
+ /**
3
+ * Applies the default value of a field if the provided value is undefined or null.
4
+ * Used in create and update operations to handle default values consistently.
5
+ *
6
+ * @typeParam PrimitiveValue - The primitive type of the field value
7
+ * @param inputValue - The input value provided for the field (may be undefined/null)
8
+ * @param field - The field definition containing the default value
9
+ * @param operation - The database operation being performed ('create' or 'update')
10
+ * @returns The original value, or the default value if applicable
11
+ *
12
+ * @remarks
13
+ * Default values are only applied:
14
+ * 1. During 'create' operations (not during updates)
15
+ * 2. When the input value is undefined or null
16
+ * 3. When the field has a defaultValue defined
17
+ *
18
+ * If the defaultValue is a function, it will be called to generate the value.
19
+ * This allows for dynamic default values such as timestamps, UUIDs, or any
20
+ * other values that need to be computed at runtime.
21
+ *
22
+ * @example
23
+ * ```typescript
24
+ * // Field with static default
25
+ * const nameField = { type: 'string', defaultValue: 'Anonymous' };
26
+ * applyDefaultValue(undefined, nameField, 'create'); // 'Anonymous'
27
+ * applyDefaultValue('Alice', nameField, 'create'); // 'Alice'
28
+ * applyDefaultValue(undefined, nameField, 'update'); // undefined
29
+ *
30
+ * // Field with dynamic default
31
+ * const createdField = { type: 'date', defaultValue: () => new Date() };
32
+ * applyDefaultValue(undefined, createdField, 'create'); // Current date
33
+ * ```
34
+ */
35
+ export declare function applyDefaultValue(inputValue: Primitive, field: Field, operation: 'create' | 'update'): Primitive;
36
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/db/adapters/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAEnE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,wBAAgB,iBAAiB,CAChC,UAAU,EAAE,SAAS,EACrB,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,QAAQ,GAAG,QAAQ,GAC5B,SAAS,CAWX"}
@@ -0,0 +1,383 @@
1
+ import type { InferValueType } from './field-inference';
2
+ import type { Field, FieldConfig, FieldType, JsonValue, Primitive } from './field-types';
3
+ /**
4
+ * Defines transform functions for field input and output operations.
5
+ * Provides properly typed transform functions based on the field type.
6
+ *
7
+ * @template TFieldType - The field type that determines the transform function signatures
8
+ *
9
+ * @example
10
+ * ```typescript
11
+ * // Define transform functions for a string field
12
+ * const nameTransformers: FieldTransformers<'string'> = {
13
+ * input: (value) => value.trim(),
14
+ * output: (value) => value.toUpperCase()
15
+ * };
16
+ * ```
17
+ */
18
+ export type FieldTransformers<TFieldType extends FieldType> = {
19
+ /**
20
+ * Transform function for field input.
21
+ * Applied when data is being saved to the database.
22
+ */
23
+ input?: (value: InferValueType<TFieldType>) => Primitive | Promise<Primitive>;
24
+ /**
25
+ * Transform function for field output.
26
+ * Applied when data is being retrieved from the database.
27
+ */
28
+ output?: (value: InferValueType<TFieldType>) => Primitive | Promise<Primitive>;
29
+ };
30
+ /**
31
+ * Configuration options specific to number fields.
32
+ * Provides additional validation options for number fields.
33
+ *
34
+ * @example
35
+ * ```typescript
36
+ * // Define a number field with min/max constraints
37
+ * const ageField = numberField({
38
+ * required: true,
39
+ * min: 0,
40
+ * max: 120
41
+ * });
42
+ * ```
43
+ */
44
+ export type NumberFieldOptions = {
45
+ /**
46
+ * Minimum allowed value for the number field.
47
+ */
48
+ min?: number;
49
+ /**
50
+ * Maximum allowed value for the number field.
51
+ */
52
+ max?: number;
53
+ };
54
+ /**
55
+ * Configuration options specific to string fields.
56
+ * Provides additional validation options for string fields.
57
+ *
58
+ * @example
59
+ * ```typescript
60
+ * // Define a string field with length constraints
61
+ * const usernameField = stringField({
62
+ * required: true,
63
+ * minLength: 3,
64
+ * maxLength: 20
65
+ * });
66
+ * ```
67
+ */
68
+ export type StringFieldOptions = {
69
+ /**
70
+ * Minimum allowed length for the string field.
71
+ */
72
+ minLength?: number;
73
+ /**
74
+ * Maximum allowed length for the string field.
75
+ */
76
+ maxLength?: number;
77
+ /**
78
+ * Regular expression pattern that the string must match.
79
+ */
80
+ pattern?: string;
81
+ };
82
+ /**
83
+ * Configuration options specific to date fields.
84
+ * Provides additional validation and formatting options for date fields.
85
+ *
86
+ * @example
87
+ * ```typescript
88
+ * // Define a date field with min/max date constraints
89
+ * const birthdateField = dateField({
90
+ * required: true,
91
+ * minDate: new Date('1900-01-01'),
92
+ * maxDate: new Date() // Current date
93
+ * });
94
+ * ```
95
+ */
96
+ export type DateFieldOptions = {
97
+ /**
98
+ * Minimum allowed date value.
99
+ * Dates earlier than this will fail validation.
100
+ */
101
+ minDate?: Date;
102
+ /**
103
+ * Maximum allowed date value.
104
+ * Dates later than this will fail validation.
105
+ */
106
+ maxDate?: Date;
107
+ /**
108
+ * Whether to store just the date part without time information.
109
+ * When true, time components will be zeroed out.
110
+ * @default false
111
+ */
112
+ dateOnly?: boolean;
113
+ /**
114
+ * Format string for date output transformation.
115
+ * If provided, dates will be transformed to strings in this format.
116
+ * Only applies if no custom output transform is provided.
117
+ * Uses Intl.DateTimeFormat for consistent cross-platform formatting.
118
+ */
119
+ format?: Intl.DateTimeFormatOptions;
120
+ };
121
+ /**
122
+ * Configuration options specific to JSON fields.
123
+ * Provides additional validation and schema options for JSON data.
124
+ *
125
+ * @example
126
+ * ```typescript
127
+ * // Define a JSON field with schema validation
128
+ * const metadataField = jsonField({
129
+ * required: true,
130
+ * validator: (value) => {
131
+ * if (!value.hasOwnProperty('version')) return 'Missing version property';
132
+ * return null;
133
+ * }
134
+ * });
135
+ * ```
136
+ */
137
+ export type JsonFieldOptions = {
138
+ /**
139
+ * Whether to validate that the value is a valid JSON object.
140
+ * When true, the field will ensure the value can be properly stringified/parsed.
141
+ * @default true
142
+ */
143
+ validateJson?: boolean;
144
+ };
145
+ /**
146
+ * Common IANA timezone identifiers.
147
+ * A subset of commonly used timezones from the IANA timezone database.
148
+ * Used for validation and autocompletion in IDE.
149
+ */
150
+ export declare const COMMON_TIMEZONES: {
151
+ readonly UTC: "UTC";
152
+ readonly GMT: "GMT";
153
+ readonly EASTERN: "America/New_York";
154
+ readonly CENTRAL: "America/Chicago";
155
+ readonly MOUNTAIN: "America/Denver";
156
+ readonly PACIFIC: "America/Los_Angeles";
157
+ readonly LONDON: "Europe/London";
158
+ readonly PARIS: "Europe/Paris";
159
+ readonly BERLIN: "Europe/Berlin";
160
+ readonly TOKYO: "Asia/Tokyo";
161
+ readonly SHANGHAI: "Asia/Shanghai";
162
+ readonly SINGAPORE: "Asia/Singapore";
163
+ readonly SYDNEY: "Australia/Sydney";
164
+ readonly SAO_PAULO: "America/Sao_Paulo";
165
+ };
166
+ /**
167
+ * Configuration options specific to timezone fields.
168
+ * Provides additional validation options for timezone fields.
169
+ *
170
+ * @example
171
+ * ```typescript
172
+ * // Define a timezone field with validation
173
+ * const tzField = timezoneField({
174
+ * required: true,
175
+ * defaultValue: COMMON_TIMEZONES.UTC
176
+ * });
177
+ *
178
+ * // Define a timezone field with suggested values
179
+ * const subjectTimezone = timezoneField({
180
+ * required: true,
181
+ * suggestedValues: [
182
+ * COMMON_TIMEZONES.EASTERN,
183
+ * COMMON_TIMEZONES.CENTRAL,
184
+ * COMMON_TIMEZONES.PACIFIC
185
+ * ]
186
+ * });
187
+ * ```
188
+ *
189
+ * @remarks
190
+ * The timezone field stores timezone identifiers according to the IANA timezone database.
191
+ * It validates timezone strings to ensure they are valid IANA timezone identifiers.
192
+ */
193
+ export type TimezoneFieldOptions = {
194
+ /**
195
+ * Whether to validate the timezone format against IANA timezone database.
196
+ * When true, ensures the value is a valid IANA timezone name.
197
+ * @default true
198
+ */
199
+ validateTimezone?: boolean;
200
+ /**
201
+ * Suggested values for the timezone field.
202
+ * Can be used by client UIs to provide dropdown options.
203
+ */
204
+ suggestedValues?: string[] | readonly string[];
205
+ /**
206
+ * Whether to restrict values to only the provided suggestedValues.
207
+ * If true, values not in suggestedValues will fail validation.
208
+ * @default false
209
+ */
210
+ restrictToSuggestedValues?: boolean;
211
+ };
212
+ /**
213
+ * Creates a field attribute with the specified configuration.
214
+ * This is the core function for defining schema fields with type safety.
215
+ *
216
+ * @template TFieldType - The field type to create
217
+ * @template TConfig - The configuration type for the field
218
+ *
219
+ * @param type - The field type to create
220
+ * @param config - Configuration options for the field
221
+ * @returns A fully configured field definition
222
+ *
223
+ * @example
224
+ * ```typescript
225
+ * // Create a basic string field
226
+ * const nameField = createField('string', {
227
+ * required: true
228
+ * });
229
+ *
230
+ * // Create a number field with transforms
231
+ * const ageField = createField('number', {
232
+ * required: false,
233
+ * transform: {
234
+ * input: (value) => Math.floor(value)
235
+ * }
236
+ * });
237
+ * ```
238
+ */
239
+ export declare function createField<TFieldType extends FieldType>(type: TFieldType, config?: Omit<FieldConfig<TFieldType>, 'type'>): Field<TFieldType>;
240
+ /**
241
+ * Creates a string field with the specified configuration.
242
+ */
243
+ export declare function stringField<TConfig extends Omit<FieldConfig<'string'>, 'type' | 'transform'> & {
244
+ transform?: {
245
+ input?: (value: string) => Primitive | Promise<Primitive>;
246
+ output?: (value: unknown) => string | Promise<string>;
247
+ };
248
+ } & StringFieldOptions>(config?: TConfig): Field<'string'>;
249
+ /**
250
+ * Creates a number field with the specified configuration.
251
+ */
252
+ export declare function numberField<TConfig extends Omit<FieldConfig<'number'>, 'type' | 'transform'> & {
253
+ transform?: {
254
+ input?: (value: number) => Primitive | Promise<Primitive>;
255
+ output?: (value: unknown) => number | Promise<number>;
256
+ };
257
+ } & NumberFieldOptions>(config?: TConfig): Field<'number'>;
258
+ /**
259
+ * Creates a boolean field with the specified configuration.
260
+ */
261
+ export declare function booleanField<TConfig extends Omit<FieldConfig<'boolean'>, 'type' | 'transform'> & {
262
+ transform?: {
263
+ input?: (value: boolean) => Primitive | Promise<Primitive>;
264
+ output?: (value: unknown) => boolean | Promise<boolean>;
265
+ };
266
+ }>(config?: TConfig): Field<'boolean'>;
267
+ /**
268
+ * Creates a date field with the specified configuration.
269
+ */
270
+ export declare function dateField<TConfig extends Omit<FieldConfig<'date'>, 'type' | 'transform' | 'minDate' | 'maxDate' | 'dateOnly' | 'format'> & {
271
+ transform?: {
272
+ input?: (value: Date) => Primitive | Promise<Primitive>;
273
+ output?: (value: unknown) => Date | Promise<Date>;
274
+ };
275
+ } & DateFieldOptions>(config?: TConfig): Field<'date'>;
276
+ /**
277
+ * Creates a timezone field with the specified configuration.
278
+ * Convenience wrapper around createField with timezone type.
279
+ *
280
+ * @template TConfig - The configuration type for the field
281
+ *
282
+ * @param config - Configuration options for the field
283
+ * @returns A fully configured timezone field definition
284
+ *
285
+ * @example
286
+ * ```typescript
287
+ * // Create a required timezone field with a default value
288
+ * const timezoneField = {
289
+ * timezone: timezoneField({
290
+ * required: true,
291
+ * defaultValue: COMMON_TIMEZONES.UTC
292
+ * })
293
+ * };
294
+ *
295
+ * // Create a timezone field with restricted values
296
+ * const regionTimezone = timezoneField({
297
+ * required: true,
298
+ * suggestedValues: [
299
+ * COMMON_TIMEZONES.EASTERN,
300
+ * COMMON_TIMEZONES.CENTRAL,
301
+ * COMMON_TIMEZONES.MOUNTAIN,
302
+ * COMMON_TIMEZONES.PACIFIC
303
+ * ],
304
+ * restrictToSuggestedValues: true
305
+ * });
306
+ * ```
307
+ *
308
+ * @remarks
309
+ * The timezone field stores timezone identifiers according to the IANA timezone database.
310
+ * It validates timezone strings to ensure they are valid IANA timezone identifiers.
311
+ */
312
+ export declare function timezoneField<TConfig extends Omit<FieldConfig<'timezone'>, 'type' | 'transform'> & {
313
+ transform?: {
314
+ input?: (value: string) => string | Promise<string>;
315
+ output?: (value: unknown) => string | Promise<string>;
316
+ };
317
+ } & TimezoneFieldOptions>(config?: TConfig): Field<'timezone'>;
318
+ /**
319
+ * Creates a string array field with the specified configuration.
320
+ */
321
+ export declare function stringArrayField<TConfig extends Omit<FieldConfig<'string[]'>, 'type' | 'transform'> & {
322
+ transform?: {
323
+ input?: (value: string[]) => Primitive | Promise<Primitive>;
324
+ output?: (value: unknown) => string[] | Promise<string[]>;
325
+ };
326
+ }>(config?: TConfig): Field<'string[]'>;
327
+ /**
328
+ * Creates a number array field with the specified configuration.
329
+ */
330
+ export declare function numberArrayField<TConfig extends Omit<FieldConfig<'number[]'>, 'type' | 'transform'> & {
331
+ transform?: {
332
+ input?: (value: number[]) => Primitive | Promise<Primitive>;
333
+ output?: (value: unknown) => number[] | Promise<number[]>;
334
+ };
335
+ }>(config?: TConfig): Field<'number[]'>;
336
+ /**
337
+ * Creates a JSON field with the specified configuration.
338
+ */
339
+ export declare function jsonField<TConfig extends Omit<FieldConfig<'json'>, 'type' | 'transform'> & {
340
+ transform?: {
341
+ input?: (value: JsonValue) => Primitive | Promise<Primitive>;
342
+ output?: (value: unknown) => JsonValue | Promise<JsonValue>;
343
+ };
344
+ } & JsonFieldOptions>(config?: TConfig): Field<'json'>;
345
+ /**
346
+ * Utility functions for working with dates and timezones.
347
+ * Provides helper methods for common date and timezone operations.
348
+ */
349
+ export declare const DateTimeUtils: {
350
+ /**
351
+ * Creates a Date object in a specific timezone.
352
+ *
353
+ * @param dateInput - Date object or ISO string to convert
354
+ * @param timezone - Target timezone (IANA timezone identifier)
355
+ * @returns Date object adjusted for the specified timezone
356
+ */
357
+ createDateInTimezone: (dateInput: Date | string, timezone: string) => Date;
358
+ /**
359
+ * Formats a date according to the specified timezone.
360
+ *
361
+ * @param date - The date to format
362
+ * @param timezone - Target timezone (IANA timezone identifier)
363
+ * @param options - Formatting options for Intl.DateTimeFormat
364
+ * @returns Formatted date string in the specified timezone
365
+ */
366
+ formatInTimezone: (date: Date, timezone: string, options?: Intl.DateTimeFormatOptions) => string;
367
+ /**
368
+ * Gets the current date in a specific timezone.
369
+ *
370
+ * @param timezone - Target timezone (IANA timezone identifier)
371
+ * @returns Current date adjusted for the specified timezone
372
+ */
373
+ getNowInTimezone: (timezone: string) => Date;
374
+ /**
375
+ * Calculates the offset in minutes between the local timezone and the specified timezone.
376
+ *
377
+ * @param timezone - Target timezone (IANA timezone identifier)
378
+ * @param date - Optional date to calculate the offset for (defaults to current date)
379
+ * @returns Offset in minutes between local and specified timezone
380
+ */
381
+ getTimezoneOffset: (timezone: string, date?: Date) => number;
382
+ };
383
+ //# sourceMappingURL=field-factory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"field-factory.d.ts","sourceRoot":"","sources":["../../../../src/db/core/fields/field-factory.ts"],"names":[],"mappings":"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"}