@c15t/backend 1.0.0 → 1.1.0-canary.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (478) hide show
  1. package/.turbo/turbo-build.log +33 -39
  2. package/.turbo/turbo-fmt.log +7 -0
  3. package/.turbo/turbo-test.log +531 -0
  4. package/README.md +19 -7
  5. package/coverage/coverage-final.json +84 -0
  6. package/coverage/coverage-summary.json +85 -0
  7. package/coverage/html/backend/index.html +116 -0
  8. package/coverage/html/backend/rslib.config.ts.html +415 -0
  9. package/coverage/html/backend/src/contracts/consent/index.html +161 -0
  10. package/coverage/html/backend/src/contracts/consent/index.ts.html +112 -0
  11. package/coverage/html/backend/src/contracts/consent/post.contract.ts.html +559 -0
  12. package/coverage/html/backend/src/contracts/consent/show-banner.contract.ts.html +220 -0
  13. package/coverage/html/backend/src/contracts/consent/verify.contract.ts.html +463 -0
  14. package/coverage/html/backend/src/contracts/index.html +116 -0
  15. package/coverage/html/backend/src/contracts/index.ts.html +139 -0
  16. package/coverage/html/backend/src/contracts/meta/index.html +131 -0
  17. package/coverage/html/backend/src/contracts/meta/index.ts.html +100 -0
  18. package/coverage/html/backend/src/contracts/meta/status.contract.ts.html +196 -0
  19. package/coverage/html/backend/src/contracts/shared/index.html +116 -0
  20. package/coverage/html/backend/src/contracts/shared/jurisdiction.schema.ts.html +175 -0
  21. package/coverage/html/backend/src/core.ts.html +1624 -0
  22. package/coverage/html/backend/src/handlers/consent/index.html +161 -0
  23. package/coverage/html/backend/src/handlers/consent/index.ts.html +112 -0
  24. package/coverage/html/backend/src/handlers/consent/post.handler.ts.html +889 -0
  25. package/coverage/html/backend/src/handlers/consent/show-banner.handler.ts.html +535 -0
  26. package/coverage/html/backend/src/handlers/consent/verify.handler.ts.html +1000 -0
  27. package/coverage/html/backend/src/handlers/meta/index.html +131 -0
  28. package/coverage/html/backend/src/handlers/meta/index.ts.html +100 -0
  29. package/coverage/html/backend/src/handlers/meta/status.handler.ts.html +226 -0
  30. package/coverage/html/backend/src/index.html +161 -0
  31. package/coverage/html/backend/src/init.ts.html +1018 -0
  32. package/coverage/html/backend/src/pkgs/api-router/hooks/index.html +116 -0
  33. package/coverage/html/backend/src/pkgs/api-router/hooks/processor.ts.html +544 -0
  34. package/coverage/html/backend/src/pkgs/api-router/index.html +116 -0
  35. package/coverage/html/backend/src/pkgs/api-router/telemetry.ts.html +334 -0
  36. package/coverage/html/backend/src/pkgs/api-router/utils/cors.ts.html +304 -0
  37. package/coverage/html/backend/src/pkgs/api-router/utils/index.html +131 -0
  38. package/coverage/html/backend/src/pkgs/api-router/utils/ip.ts.html +361 -0
  39. package/coverage/html/backend/src/pkgs/data-model/fields/field-factory.ts.html +709 -0
  40. package/coverage/html/backend/src/pkgs/data-model/fields/id-generator.ts.html +256 -0
  41. package/coverage/html/backend/src/pkgs/data-model/fields/index.html +161 -0
  42. package/coverage/html/backend/src/pkgs/data-model/fields/superjson-utils.ts.html +136 -0
  43. package/coverage/html/backend/src/pkgs/data-model/fields/zod-fields.ts.html +496 -0
  44. package/coverage/html/backend/src/pkgs/data-model/hooks/create-hooks.ts.html +349 -0
  45. package/coverage/html/backend/src/pkgs/data-model/hooks/index.html +176 -0
  46. package/coverage/html/backend/src/pkgs/data-model/hooks/update-hooks.ts.html +358 -0
  47. package/coverage/html/backend/src/pkgs/data-model/hooks/update-many-hooks.ts.html +613 -0
  48. package/coverage/html/backend/src/pkgs/data-model/hooks/utils.ts.html +538 -0
  49. package/coverage/html/backend/src/pkgs/data-model/hooks/with-hooks-factory.ts.html +289 -0
  50. package/coverage/html/backend/src/pkgs/db-adapters/adapter-factory.ts.html +289 -0
  51. package/coverage/html/backend/src/pkgs/db-adapters/adapters/drizzle-adapter/drizzle-adapter.ts.html +2203 -0
  52. package/coverage/html/backend/src/pkgs/db-adapters/adapters/drizzle-adapter/index.html +116 -0
  53. package/coverage/html/backend/src/pkgs/db-adapters/adapters/index.html +116 -0
  54. package/coverage/html/backend/src/pkgs/db-adapters/adapters/kysely-adapter/dialect.ts.html +670 -0
  55. package/coverage/html/backend/src/pkgs/db-adapters/adapters/kysely-adapter/index.html +131 -0
  56. package/coverage/html/backend/src/pkgs/db-adapters/adapters/kysely-adapter/kysely-adapter.ts.html +3634 -0
  57. package/coverage/html/backend/src/pkgs/db-adapters/adapters/kysely-adapter/tests/index.html +116 -0
  58. package/coverage/html/backend/src/pkgs/db-adapters/adapters/kysely-adapter/tests/test-utils.ts.html +1417 -0
  59. package/coverage/html/backend/src/pkgs/db-adapters/adapters/memory-adapter/index.html +116 -0
  60. package/coverage/html/backend/src/pkgs/db-adapters/adapters/memory-adapter/memory-adapter.ts.html +2071 -0
  61. package/coverage/html/backend/src/pkgs/db-adapters/adapters/prisma-adapter/index.html +116 -0
  62. package/coverage/html/backend/src/pkgs/db-adapters/adapters/prisma-adapter/prisma-adapter.ts.html +1834 -0
  63. package/coverage/html/backend/src/pkgs/db-adapters/adapters/test.ts.html +316 -0
  64. package/coverage/html/backend/src/pkgs/db-adapters/index.html +131 -0
  65. package/coverage/html/backend/src/pkgs/db-adapters/utils.ts.html +238 -0
  66. package/coverage/html/backend/src/pkgs/migrations/get-migration.ts.html +343 -0
  67. package/coverage/html/backend/src/pkgs/migrations/get-schema/get-schema.ts.html +217 -0
  68. package/coverage/html/backend/src/pkgs/migrations/get-schema/index.html +146 -0
  69. package/coverage/html/backend/src/pkgs/migrations/get-schema/process-fields.ts.html +280 -0
  70. package/coverage/html/backend/src/pkgs/migrations/get-schema/process-tables.ts.html +289 -0
  71. package/coverage/html/backend/src/pkgs/migrations/index.html +176 -0
  72. package/coverage/html/backend/src/pkgs/migrations/migration-builders.ts.html +595 -0
  73. package/coverage/html/backend/src/pkgs/migrations/migration-execution.ts.html +301 -0
  74. package/coverage/html/backend/src/pkgs/migrations/schema-comparison.ts.html +694 -0
  75. package/coverage/html/backend/src/pkgs/migrations/type-mapping.ts.html +817 -0
  76. package/coverage/html/backend/src/pkgs/results/core/error-class.ts.html +976 -0
  77. package/coverage/html/backend/src/pkgs/results/core/error-codes.ts.html +703 -0
  78. package/coverage/html/backend/src/pkgs/results/core/index.html +146 -0
  79. package/coverage/html/backend/src/pkgs/results/core/tracing.ts.html +280 -0
  80. package/coverage/html/backend/src/pkgs/results/create-telemetry-options.ts.html +271 -0
  81. package/coverage/html/backend/src/pkgs/results/index.html +131 -0
  82. package/coverage/html/backend/src/pkgs/results/orpc-error-handler.ts.html +496 -0
  83. package/coverage/html/backend/src/pkgs/results/results/index.html +131 -0
  84. package/coverage/html/backend/src/pkgs/results/results/recovery-utils.ts.html +628 -0
  85. package/coverage/html/backend/src/pkgs/results/results/result-helpers.ts.html +1234 -0
  86. package/coverage/html/backend/src/pkgs/utils/env.ts.html +337 -0
  87. package/coverage/html/backend/src/pkgs/utils/index.html +146 -0
  88. package/coverage/html/backend/src/pkgs/utils/logger.ts.html +199 -0
  89. package/coverage/html/backend/src/pkgs/utils/url.ts.html +400 -0
  90. package/coverage/html/backend/src/router.ts.html +109 -0
  91. package/coverage/html/backend/src/schema/audit-log/index.html +146 -0
  92. package/coverage/html/backend/src/schema/audit-log/registry.ts.html +436 -0
  93. package/coverage/html/backend/src/schema/audit-log/schema.ts.html +223 -0
  94. package/coverage/html/backend/src/schema/audit-log/table.ts.html +640 -0
  95. package/coverage/html/backend/src/schema/consent/index.html +146 -0
  96. package/coverage/html/backend/src/schema/consent/registry.ts.html +616 -0
  97. package/coverage/html/backend/src/schema/consent/schema.ts.html +238 -0
  98. package/coverage/html/backend/src/schema/consent/table.ts.html +748 -0
  99. package/coverage/html/backend/src/schema/consent-policy/index.html +146 -0
  100. package/coverage/html/backend/src/schema/consent-policy/registry.ts.html +1063 -0
  101. package/coverage/html/backend/src/schema/consent-policy/schema.ts.html +265 -0
  102. package/coverage/html/backend/src/schema/consent-policy/table.ts.html +535 -0
  103. package/coverage/html/backend/src/schema/consent-purpose/index.html +146 -0
  104. package/coverage/html/backend/src/schema/consent-purpose/registry.ts.html +589 -0
  105. package/coverage/html/backend/src/schema/consent-purpose/schema.ts.html +259 -0
  106. package/coverage/html/backend/src/schema/consent-purpose/table.ts.html +547 -0
  107. package/coverage/html/backend/src/schema/consent-record/index.html +131 -0
  108. package/coverage/html/backend/src/schema/consent-record/schema.ts.html +211 -0
  109. package/coverage/html/backend/src/schema/consent-record/table.ts.html +457 -0
  110. package/coverage/html/backend/src/schema/create-registry.ts.html +148 -0
  111. package/coverage/html/backend/src/schema/definition.ts.html +685 -0
  112. package/coverage/html/backend/src/schema/domain/index.html +146 -0
  113. package/coverage/html/backend/src/schema/domain/registry.ts.html +973 -0
  114. package/coverage/html/backend/src/schema/domain/schema.ts.html +214 -0
  115. package/coverage/html/backend/src/schema/domain/table.ts.html +496 -0
  116. package/coverage/html/backend/src/schema/index.html +146 -0
  117. package/coverage/html/backend/src/schema/schemas.ts.html +166 -0
  118. package/coverage/html/backend/src/schema/subject/index.html +146 -0
  119. package/coverage/html/backend/src/schema/subject/registry.ts.html +973 -0
  120. package/coverage/html/backend/src/schema/subject/schema.ts.html +208 -0
  121. package/coverage/html/backend/src/schema/subject/table.ts.html +499 -0
  122. package/coverage/html/backend/src/server.ts.html +475 -0
  123. package/coverage/html/backend/src/testing/contract-testing.ts.html +1348 -0
  124. package/coverage/html/backend/src/testing/index.html +116 -0
  125. package/coverage/html/base.css +224 -0
  126. package/coverage/html/block-navigation.js +87 -0
  127. package/coverage/html/favicon.png +0 -0
  128. package/coverage/html/index.html +626 -0
  129. package/coverage/html/prettify.css +1 -0
  130. package/coverage/html/prettify.js +2 -0
  131. package/coverage/html/sort-arrow-sprite.png +0 -0
  132. package/coverage/html/sorter.js +196 -0
  133. package/dist/contracts/consent/index.d.ts +401 -0
  134. package/dist/contracts/consent/index.d.ts.map +1 -0
  135. package/dist/contracts/consent/index.test.d.ts +2 -0
  136. package/dist/contracts/consent/index.test.d.ts.map +1 -0
  137. package/dist/contracts/consent/post.contract.d.ts +212 -0
  138. package/dist/contracts/consent/post.contract.d.ts.map +1 -0
  139. package/dist/contracts/consent/post.contract.test.d.ts +2 -0
  140. package/dist/contracts/consent/post.contract.test.d.ts.map +1 -0
  141. package/dist/contracts/consent/show-banner.contract.d.ts +45 -0
  142. package/dist/contracts/consent/show-banner.contract.d.ts.map +1 -0
  143. package/dist/contracts/consent/show-banner.contract.test.d.ts +2 -0
  144. package/dist/contracts/consent/show-banner.contract.test.d.ts.map +1 -0
  145. package/dist/contracts/consent/verify.contract.d.ts +147 -0
  146. package/dist/contracts/consent/verify.contract.d.ts.map +1 -0
  147. package/dist/contracts/consent/verify.contract.test.d.ts +2 -0
  148. package/dist/contracts/consent/verify.contract.test.d.ts.map +1 -0
  149. package/dist/contracts/index.d.ts +963 -0
  150. package/dist/contracts/index.d.ts.map +1 -0
  151. package/dist/contracts/meta/index.d.ts +78 -0
  152. package/dist/contracts/meta/index.d.ts.map +1 -0
  153. package/dist/contracts/meta/index.test.d.ts +2 -0
  154. package/dist/contracts/meta/index.test.d.ts.map +1 -0
  155. package/dist/contracts/meta/status.contract.d.ts +77 -0
  156. package/dist/contracts/meta/status.contract.d.ts.map +1 -0
  157. package/dist/contracts/meta/status.contract.test.d.ts +2 -0
  158. package/dist/contracts/meta/status.contract.test.d.ts.map +1 -0
  159. package/dist/contracts/shared/jurisdiction.schema.d.ts +24 -0
  160. package/dist/contracts/shared/jurisdiction.schema.d.ts.map +1 -0
  161. package/dist/core.cjs +3584 -0
  162. package/dist/core.d.ts +533 -78
  163. package/dist/core.d.ts.map +1 -1
  164. package/dist/{index.js → core.js} +1164 -1292
  165. package/dist/handlers/consent/index.d.ts +401 -0
  166. package/dist/handlers/consent/index.d.ts.map +1 -0
  167. package/dist/handlers/consent/post.handler.d.ts +234 -0
  168. package/dist/handlers/consent/post.handler.d.ts.map +1 -0
  169. package/dist/handlers/consent/show-banner.handler.d.ts +57 -0
  170. package/dist/handlers/consent/show-banner.handler.d.ts.map +1 -0
  171. package/dist/handlers/consent/show-banner.handler.test.d.ts +2 -0
  172. package/dist/handlers/consent/show-banner.handler.test.d.ts.map +1 -0
  173. package/dist/handlers/consent/verify.handler.d.ts +169 -0
  174. package/dist/handlers/consent/verify.handler.d.ts.map +1 -0
  175. package/dist/handlers/meta/index.d.ts +78 -0
  176. package/dist/handlers/meta/index.d.ts.map +1 -0
  177. package/dist/handlers/meta/status.handler.d.ts +76 -0
  178. package/dist/handlers/meta/status.handler.d.ts.map +1 -0
  179. package/dist/init.d.ts +0 -1
  180. package/dist/init.d.ts.map +1 -1
  181. package/dist/pkgs/api-router/hooks/processor.d.ts.map +1 -1
  182. package/dist/pkgs/api-router/types/router-props.d.ts +1 -1
  183. package/dist/pkgs/api-router/types/router-props.d.ts.map +1 -1
  184. package/dist/pkgs/api-router/utils/cors.d.ts +1 -1
  185. package/dist/pkgs/api-router/utils/cors.d.ts.map +1 -1
  186. package/dist/pkgs/data-model/fields/field-types.d.ts +1 -1
  187. package/dist/pkgs/data-model/fields/zod-fields.d.ts +32 -32
  188. package/dist/pkgs/data-model/index.cjs +1433 -1799
  189. package/dist/pkgs/data-model/index.js +20 -385
  190. package/dist/pkgs/data-model/schema/index.cjs +1402 -1768
  191. package/dist/pkgs/data-model/schema/index.js +20 -385
  192. package/dist/pkgs/db-adapters/adapter-factory.d.ts +2 -2
  193. package/dist/pkgs/db-adapters/adapter-factory.d.ts.map +1 -1
  194. package/dist/pkgs/db-adapters/adapters/drizzle-adapter/drizzle-adapter.d.ts +4 -7
  195. package/dist/pkgs/db-adapters/adapters/drizzle-adapter/drizzle-adapter.d.ts.map +1 -1
  196. package/dist/pkgs/db-adapters/adapters/drizzle-adapter/index.cjs +19 -151
  197. package/dist/pkgs/db-adapters/adapters/drizzle-adapter/index.js +19 -151
  198. package/dist/pkgs/db-adapters/adapters/kysely-adapter/dialect.d.ts +1 -3
  199. package/dist/pkgs/db-adapters/adapters/kysely-adapter/dialect.d.ts.map +1 -1
  200. package/dist/pkgs/db-adapters/adapters/kysely-adapter/index.cjs +17 -149
  201. package/dist/pkgs/db-adapters/adapters/kysely-adapter/index.js +17 -149
  202. package/dist/pkgs/db-adapters/adapters/kysely-adapter/kysely-adapter.d.ts +0 -1
  203. package/dist/pkgs/db-adapters/adapters/kysely-adapter/kysely-adapter.d.ts.map +1 -1
  204. package/dist/pkgs/db-adapters/adapters/kysely-adapter/tests/test-utils.d.ts +2 -2
  205. package/dist/pkgs/db-adapters/adapters/kysely-adapter/tests/test-utils.d.ts.map +1 -1
  206. package/dist/pkgs/db-adapters/adapters/kysely-adapter/types.d.ts +0 -2
  207. package/dist/pkgs/db-adapters/adapters/kysely-adapter/types.d.ts.map +1 -1
  208. package/dist/pkgs/db-adapters/adapters/memory-adapter/index.cjs +17 -149
  209. package/dist/pkgs/db-adapters/adapters/memory-adapter/index.js +17 -149
  210. package/dist/pkgs/db-adapters/adapters/memory-adapter/memory-adapter.d.ts +0 -1
  211. package/dist/pkgs/db-adapters/adapters/memory-adapter/memory-adapter.d.ts.map +1 -1
  212. package/dist/pkgs/db-adapters/adapters/prisma-adapter/index.cjs +19 -151
  213. package/dist/pkgs/db-adapters/adapters/prisma-adapter/index.js +19 -151
  214. package/dist/pkgs/db-adapters/adapters/prisma-adapter/prisma-adapter.d.ts +0 -1
  215. package/dist/pkgs/db-adapters/adapters/prisma-adapter/prisma-adapter.d.ts.map +1 -1
  216. package/dist/pkgs/db-adapters/index.cjs +31 -153
  217. package/dist/pkgs/db-adapters/index.js +31 -153
  218. package/dist/pkgs/migrations/get-schema/get-schema.d.ts +2 -2
  219. package/dist/pkgs/migrations/get-schema/index.d.ts +1 -1
  220. package/dist/pkgs/migrations/index.cjs +30 -153
  221. package/dist/pkgs/migrations/index.js +30 -153
  222. package/dist/pkgs/migrations/schema-comparison.d.ts.map +1 -1
  223. package/dist/pkgs/results/core/error-class.d.ts +23 -21
  224. package/dist/pkgs/results/core/error-class.d.ts.map +1 -1
  225. package/dist/pkgs/results/index.cjs +17 -150
  226. package/dist/pkgs/results/index.d.ts +0 -3
  227. package/dist/pkgs/results/index.d.ts.map +1 -1
  228. package/dist/pkgs/results/index.js +17 -138
  229. package/dist/pkgs/results/orpc-error-handler.d.ts +65 -0
  230. package/dist/pkgs/results/orpc-error-handler.d.ts.map +1 -0
  231. package/dist/pkgs/results/types.d.ts +7 -7
  232. package/dist/pkgs/results/types.d.ts.map +1 -1
  233. package/dist/pkgs/types/context.d.ts +15 -8
  234. package/dist/pkgs/types/context.d.ts.map +1 -1
  235. package/dist/pkgs/types/endpoints.d.ts +3 -4
  236. package/dist/pkgs/types/endpoints.d.ts.map +1 -1
  237. package/dist/pkgs/types/options.d.ts +2 -4
  238. package/dist/pkgs/types/options.d.ts.map +1 -1
  239. package/dist/pkgs/types/plugins.d.ts +2 -3
  240. package/dist/pkgs/types/plugins.d.ts.map +1 -1
  241. package/dist/pkgs/utils/index.d.ts +1 -0
  242. package/dist/pkgs/utils/index.d.ts.map +1 -1
  243. package/dist/pkgs/utils/logger.d.ts +16 -0
  244. package/dist/pkgs/utils/logger.d.ts.map +1 -0
  245. package/dist/router.cjs +1213 -0
  246. package/dist/router.d.ts +480 -0
  247. package/dist/router.d.ts.map +1 -0
  248. package/dist/router.js +1169 -0
  249. package/dist/schema/audit-log/table.d.ts +1 -1
  250. package/dist/schema/consent/table.d.ts +1 -1
  251. package/dist/schema/consent-policy/registry.d.ts +12 -12
  252. package/dist/schema/consent-policy/schema.d.ts +6 -6
  253. package/dist/schema/consent-policy/table.d.ts +7 -7
  254. package/dist/schema/consent-purpose/registry.d.ts +6 -6
  255. package/dist/schema/consent-purpose/schema.d.ts +6 -6
  256. package/dist/schema/consent-purpose/table.d.ts +7 -7
  257. package/dist/schema/consent-record/table.d.ts +1 -1
  258. package/dist/schema/create-registry.d.ts +32 -32
  259. package/dist/schema/definition.d.ts +19 -19
  260. package/dist/schema/domain/registry.d.ts +10 -10
  261. package/dist/schema/domain/schema.d.ts +5 -5
  262. package/dist/schema/domain/table.d.ts +6 -6
  263. package/dist/schema/index.cjs +1409 -1775
  264. package/dist/schema/index.js +20 -385
  265. package/dist/schema/schemas.d.ts +19 -19
  266. package/dist/schema/subject/registry.d.ts +4 -4
  267. package/dist/schema/subject/schema.d.ts +2 -2
  268. package/dist/schema/subject/table.d.ts +3 -3
  269. package/dist/server.d.ts +2 -0
  270. package/dist/server.d.ts.map +1 -0
  271. package/dist/testing/contract-testing.d.ts +37 -0
  272. package/dist/testing/contract-testing.d.ts.map +1 -0
  273. package/dist/types/context.d.ts +1 -1
  274. package/dist/types/index.d.ts +2 -2
  275. package/dist/types/options.d.ts +33 -3
  276. package/dist/types/options.d.ts.map +1 -1
  277. package/dist/types/plugins.d.ts +3 -4
  278. package/dist/types/plugins.d.ts.map +1 -1
  279. package/package.json +20 -28
  280. package/rslib.config.ts +2 -5
  281. package/src/contracts/consent/index.test.ts +5 -0
  282. package/src/contracts/consent/index.ts +9 -0
  283. package/src/contracts/consent/post.contract.test.ts +526 -0
  284. package/src/contracts/consent/post.contract.ts +160 -0
  285. package/src/contracts/consent/show-banner.contract.test.ts +214 -0
  286. package/src/contracts/consent/show-banner.contract.ts +45 -0
  287. package/src/contracts/consent/verify.contract.test.ts +185 -0
  288. package/src/contracts/consent/verify.contract.ts +126 -0
  289. package/src/contracts/index.ts +18 -0
  290. package/src/contracts/meta/index.test.ts +5 -0
  291. package/src/contracts/meta/index.ts +5 -0
  292. package/src/contracts/meta/status.contract.test.ts +338 -0
  293. package/src/contracts/meta/status.contract.ts +37 -0
  294. package/src/contracts/shared/jurisdiction.schema.ts +30 -0
  295. package/src/core.ts +451 -161
  296. package/src/handlers/consent/index.ts +9 -0
  297. package/src/handlers/consent/post.handler.ts +273 -0
  298. package/src/handlers/consent/show-banner.handler.test.ts +148 -0
  299. package/src/handlers/consent/show-banner.handler.ts +150 -0
  300. package/src/handlers/consent/verify.handler.ts +305 -0
  301. package/src/handlers/meta/index.ts +5 -0
  302. package/src/handlers/meta/status.handler.ts +47 -0
  303. package/src/init.ts +8 -26
  304. package/src/pkgs/api-router/hooks/__tests__/processor.test.ts +6 -0
  305. package/src/pkgs/api-router/hooks/processor.ts +2 -0
  306. package/src/pkgs/api-router/types/router-props.ts +1 -1
  307. package/src/pkgs/api-router/utils/cors.ts +1 -1
  308. package/src/pkgs/data-model/fields/field-types.ts +1 -1
  309. package/src/pkgs/data-model/fields/id-generator.ts +1 -1
  310. package/src/pkgs/db-adapters/README.md +3 -3
  311. package/src/pkgs/db-adapters/adapter-factory.ts +8 -4
  312. package/src/pkgs/db-adapters/adapters/drizzle-adapter/drizzle-adapter.ts +13 -16
  313. package/src/pkgs/db-adapters/adapters/kysely-adapter/dialect.ts +1 -3
  314. package/src/pkgs/db-adapters/adapters/kysely-adapter/kysely-adapter.ts +0 -1
  315. package/src/pkgs/db-adapters/adapters/kysely-adapter/tests/postgres.test.ts +1 -1
  316. package/src/pkgs/db-adapters/adapters/kysely-adapter/tests/sqlite.test.ts +1 -1
  317. package/src/pkgs/db-adapters/adapters/kysely-adapter/tests/test-utils.ts +2 -2
  318. package/src/pkgs/db-adapters/adapters/kysely-adapter/types.ts +0 -2
  319. package/src/pkgs/db-adapters/adapters/memory-adapter/memory-adapter.ts +0 -1
  320. package/src/pkgs/db-adapters/adapters/prisma-adapter/prisma-adapter.ts +0 -1
  321. package/src/pkgs/migrations/get-migration.ts +3 -3
  322. package/src/pkgs/migrations/get-schema/get-schema.ts +2 -2
  323. package/src/pkgs/migrations/get-schema/index.ts +1 -1
  324. package/src/pkgs/migrations/migration-builders.ts +2 -2
  325. package/src/pkgs/migrations/migration-execution.ts +2 -2
  326. package/src/pkgs/migrations/schema-comparison.ts +5 -4
  327. package/src/pkgs/results/__tests__/error-class.test.ts +8 -7
  328. package/src/pkgs/results/core/error-class.ts +31 -43
  329. package/src/pkgs/results/index.ts +0 -10
  330. package/src/pkgs/results/orpc-error-handler.ts +137 -0
  331. package/src/pkgs/results/types.ts +8 -7
  332. package/src/pkgs/types/context.ts +18 -9
  333. package/src/pkgs/types/endpoints.ts +3 -5
  334. package/src/pkgs/types/options.ts +2 -4
  335. package/src/pkgs/types/plugins.ts +2 -3
  336. package/src/pkgs/utils/index.ts +1 -0
  337. package/src/pkgs/utils/logger.ts +38 -0
  338. package/src/router.ts +8 -0
  339. package/src/schema/audit-log/table.ts +1 -1
  340. package/src/schema/consent/table.ts +1 -1
  341. package/src/schema/consent-policy/table.ts +1 -1
  342. package/src/schema/consent-purpose/table.ts +1 -1
  343. package/src/schema/consent-record/table.ts +1 -1
  344. package/src/schema/definition.ts +2 -2
  345. package/src/schema/domain/table.ts +1 -1
  346. package/src/schema/subject/table.ts +1 -1
  347. package/src/server.ts +130 -0
  348. package/src/testing/contract-testing.ts +437 -0
  349. package/src/types/context.ts +1 -1
  350. package/src/types/index.ts +2 -2
  351. package/src/types/options.ts +38 -3
  352. package/src/types/plugins.ts +3 -4
  353. package/dist/index.cjs +0 -3706
  354. package/dist/index.d.ts +0 -11
  355. package/dist/index.d.ts.map +0 -1
  356. package/dist/init.test.d.ts +0 -2
  357. package/dist/init.test.d.ts.map +0 -1
  358. package/dist/integrations/cloudflare.cjs +0 -312
  359. package/dist/integrations/cloudflare.d.ts +0 -32
  360. package/dist/integrations/cloudflare.d.ts.map +0 -1
  361. package/dist/integrations/cloudflare.js +0 -278
  362. package/dist/integrations/next.cjs +0 -276
  363. package/dist/integrations/next.d.ts +0 -68
  364. package/dist/integrations/next.d.ts.map +0 -1
  365. package/dist/integrations/next.js +0 -239
  366. package/dist/integrations/node.cjs +0 -257
  367. package/dist/integrations/node.d.ts +0 -29
  368. package/dist/integrations/node.d.ts.map +0 -1
  369. package/dist/integrations/node.js +0 -223
  370. package/dist/pkgs/api-router/index.d.ts +0 -9
  371. package/dist/pkgs/api-router/index.d.ts.map +0 -1
  372. package/dist/pkgs/api-router/utils/define-route.d.ts +0 -87
  373. package/dist/pkgs/api-router/utils/define-route.d.ts.map +0 -1
  374. package/dist/pkgs/logger/__tests__/console-formatter.test.d.ts +0 -2
  375. package/dist/pkgs/logger/__tests__/console-formatter.test.d.ts.map +0 -1
  376. package/dist/pkgs/logger/__tests__/integration.test.d.ts +0 -2
  377. package/dist/pkgs/logger/__tests__/integration.test.d.ts.map +0 -1
  378. package/dist/pkgs/logger/__tests__/log-levels.test.d.ts +0 -2
  379. package/dist/pkgs/logger/__tests__/log-levels.test.d.ts.map +0 -1
  380. package/dist/pkgs/logger/__tests__/logger-factory.test.d.ts +0 -2
  381. package/dist/pkgs/logger/__tests__/logger-factory.test.d.ts.map +0 -1
  382. package/dist/pkgs/logger/__tests__/result-logging.test.d.ts +0 -2
  383. package/dist/pkgs/logger/__tests__/result-logging.test.d.ts.map +0 -1
  384. package/dist/pkgs/logger/__tests__/types.test.d.ts +0 -2
  385. package/dist/pkgs/logger/__tests__/types.test.d.ts.map +0 -1
  386. package/dist/pkgs/logger/console-formatter.d.ts +0 -56
  387. package/dist/pkgs/logger/console-formatter.d.ts.map +0 -1
  388. package/dist/pkgs/logger/index.cjs +0 -240
  389. package/dist/pkgs/logger/index.d.ts +0 -35
  390. package/dist/pkgs/logger/index.d.ts.map +0 -1
  391. package/dist/pkgs/logger/index.js +0 -185
  392. package/dist/pkgs/logger/log-levels.d.ts +0 -29
  393. package/dist/pkgs/logger/log-levels.d.ts.map +0 -1
  394. package/dist/pkgs/logger/logger-factory.d.ts +0 -42
  395. package/dist/pkgs/logger/logger-factory.d.ts.map +0 -1
  396. package/dist/pkgs/logger/result-logging.d.ts +0 -71
  397. package/dist/pkgs/logger/result-logging.d.ts.map +0 -1
  398. package/dist/pkgs/logger/telemetry.d.ts +0 -14
  399. package/dist/pkgs/logger/telemetry.d.ts.map +0 -1
  400. package/dist/pkgs/logger/types.d.ts +0 -121
  401. package/dist/pkgs/logger/types.d.ts.map +0 -1
  402. package/dist/pkgs/results/__tests__/retrieval-pipeline.test.d.ts +0 -2
  403. package/dist/pkgs/results/__tests__/retrieval-pipeline.test.d.ts.map +0 -1
  404. package/dist/pkgs/results/__tests__/validation-pipeline.test.d.ts +0 -2
  405. package/dist/pkgs/results/__tests__/validation-pipeline.test.d.ts.map +0 -1
  406. package/dist/pkgs/results/h3-integration.d.ts +0 -52
  407. package/dist/pkgs/results/h3-integration.d.ts.map +0 -1
  408. package/dist/pkgs/results/pipeline/retrieval-pipeline.d.ts +0 -101
  409. package/dist/pkgs/results/pipeline/retrieval-pipeline.d.ts.map +0 -1
  410. package/dist/pkgs/results/pipeline/validation-pipeline.d.ts +0 -89
  411. package/dist/pkgs/results/pipeline/validation-pipeline.d.ts.map +0 -1
  412. package/dist/response-types.d.ts +0 -19
  413. package/dist/response-types.d.ts.map +0 -1
  414. package/dist/routes/__test__/index.test.d.ts +0 -17
  415. package/dist/routes/__test__/index.test.d.ts.map +0 -1
  416. package/dist/routes/__test__/set-consent.test.d.ts +0 -2
  417. package/dist/routes/__test__/set-consent.test.d.ts.map +0 -1
  418. package/dist/routes/__test__/show-consent-banner.test.d.ts +0 -2
  419. package/dist/routes/__test__/show-consent-banner.test.d.ts.map +0 -1
  420. package/dist/routes/__test__/status.test.d.ts +0 -2
  421. package/dist/routes/__test__/status.test.d.ts.map +0 -1
  422. package/dist/routes/__test__/verify-consent.test.d.ts +0 -2
  423. package/dist/routes/__test__/verify-consent.test.d.ts.map +0 -1
  424. package/dist/routes/index.d.ts +0 -3
  425. package/dist/routes/index.d.ts.map +0 -1
  426. package/dist/routes/set-consent.d.ts +0 -89
  427. package/dist/routes/set-consent.d.ts.map +0 -1
  428. package/dist/routes/show-consent-banner.d.ts +0 -15
  429. package/dist/routes/show-consent-banner.d.ts.map +0 -1
  430. package/dist/routes/status.d.ts +0 -44
  431. package/dist/routes/status.d.ts.map +0 -1
  432. package/dist/routes/types.d.ts +0 -7
  433. package/dist/routes/types.d.ts.map +0 -1
  434. package/dist/routes/verify-consent.d.ts +0 -38
  435. package/dist/routes/verify-consent.d.ts.map +0 -1
  436. package/src/docs/ADVANCED_JSON_HANDLING.md +0 -99
  437. package/src/docs/neverthrow.md +0 -171
  438. package/src/index.ts +0 -34
  439. package/src/init.test.ts +0 -236
  440. package/src/integrations/cloudflare.ts +0 -269
  441. package/src/integrations/next.ts +0 -204
  442. package/src/integrations/node.ts +0 -141
  443. package/src/pkgs/api-router/index.ts +0 -148
  444. package/src/pkgs/api-router/types/h3.d.ts +0 -42
  445. package/src/pkgs/api-router/utils/define-route.ts +0 -410
  446. package/src/pkgs/logger/README.md +0 -213
  447. package/src/pkgs/logger/__tests__/console-formatter.test.ts +0 -67
  448. package/src/pkgs/logger/__tests__/integration.test.ts +0 -184
  449. package/src/pkgs/logger/__tests__/log-levels.test.ts +0 -77
  450. package/src/pkgs/logger/__tests__/logger-factory.test.ts +0 -156
  451. package/src/pkgs/logger/__tests__/result-logging.test.ts +0 -209
  452. package/src/pkgs/logger/__tests__/types.test.ts +0 -94
  453. package/src/pkgs/logger/console-formatter.ts +0 -75
  454. package/src/pkgs/logger/doc.md +0 -569
  455. package/src/pkgs/logger/index.ts +0 -59
  456. package/src/pkgs/logger/log-levels.ts +0 -46
  457. package/src/pkgs/logger/logger-factory.ts +0 -121
  458. package/src/pkgs/logger/result-logging.ts +0 -134
  459. package/src/pkgs/logger/telemetry.ts +0 -96
  460. package/src/pkgs/logger/types.ts +0 -138
  461. package/src/pkgs/results/__tests__/retrieval-pipeline.test.ts +0 -157
  462. package/src/pkgs/results/__tests__/validation-pipeline.test.ts +0 -151
  463. package/src/pkgs/results/h3-integration.ts +0 -142
  464. package/src/pkgs/results/pipeline/retrieval-pipeline.ts +0 -188
  465. package/src/pkgs/results/pipeline/validation-pipeline.ts +0 -164
  466. package/src/plugins/.keep +0 -0
  467. package/src/response-types.ts +0 -29
  468. package/src/routes/__test__/index.test.ts +0 -112
  469. package/src/routes/__test__/set-consent.test.ts +0 -242
  470. package/src/routes/__test__/show-consent-banner.test.ts +0 -98
  471. package/src/routes/__test__/status.test.ts +0 -64
  472. package/src/routes/__test__/verify-consent.test.ts +0 -266
  473. package/src/routes/index.ts +0 -12
  474. package/src/routes/set-consent.ts +0 -249
  475. package/src/routes/show-consent-banner.ts +0 -131
  476. package/src/routes/status.ts +0 -61
  477. package/src/routes/types.ts +0 -7
  478. package/src/routes/verify-consent.ts +0 -206
@@ -2,8 +2,9 @@ import * as __WEBPACK_EXTERNAL_MODULE_superjson__ from "superjson";
2
2
  import * as __WEBPACK_EXTERNAL_MODULE_base_x_aeb88370__ from "base-x";
3
3
  import * as __WEBPACK_EXTERNAL_MODULE_zod__ from "zod";
4
4
  import "neverthrow";
5
- import * as __WEBPACK_EXTERNAL_MODULE_h3__ from "h3";
5
+ import * as __WEBPACK_EXTERNAL_MODULE__orpc_server_0dae8408__ from "@orpc/server";
6
6
  import * as __WEBPACK_EXTERNAL_MODULE__opentelemetry_api_87359e78__ from "@opentelemetry/api";
7
+ import * as __WEBPACK_EXTERNAL_MODULE__doubletie_logger_91c58a8f__ from "@doubletie/logger";
7
8
  import "node:crypto";
8
9
  import * as __WEBPACK_EXTERNAL_MODULE_drizzle_orm_51e552b8__ from "drizzle-orm";
9
10
  import * as __WEBPACK_EXTERNAL_MODULE_kysely__ from "kysely";
@@ -153,9 +154,9 @@ const ERROR_CATEGORIES = Object.freeze({
153
154
  CONFIGURATION: 'configuration',
154
155
  UNEXPECTED: 'unexpected'
155
156
  });
156
- const tracing_tracer = __WEBPACK_EXTERNAL_MODULE__opentelemetry_api_87359e78__.trace.getTracer('@doubletie/results');
157
+ const tracer = __WEBPACK_EXTERNAL_MODULE__opentelemetry_api_87359e78__.trace.getTracer('@doubletie/results');
157
158
  async function tracing_withSpan(name, fn, attributes = {}) {
158
- return await tracing_tracer.startActiveSpan(name, async (span)=>{
159
+ return await tracer.startActiveSpan(name, async (span)=>{
159
160
  try {
160
161
  span.setAttributes(attributes);
161
162
  const result = await fn(span);
@@ -188,10 +189,10 @@ async function tracing_withSpan(name, fn, attributes = {}) {
188
189
  }
189
190
  });
190
191
  }
191
- class error_class_DoubleTieError extends __WEBPACK_EXTERNAL_MODULE_h3__.H3Error {
192
- code;
192
+ class error_class_DoubleTieError extends __WEBPACK_EXTERNAL_MODULE__orpc_server_0dae8408__.ORPCError {
193
193
  category;
194
194
  meta;
195
+ statusCode;
195
196
  constructor(message, options = {
196
197
  code: error_codes_ERROR_CODES.UNKNOWN_ERROR,
197
198
  status: 500,
@@ -199,22 +200,18 @@ class error_class_DoubleTieError extends __WEBPACK_EXTERNAL_MODULE_h3__.H3Error
199
200
  cause: void 0,
200
201
  meta: {}
201
202
  }){
202
- super(message, {
203
- cause: options.cause
203
+ super(options.code ?? error_codes_ERROR_CODES.UNKNOWN_ERROR, {
204
+ message,
205
+ cause: options.cause,
206
+ data: options.meta ?? {}
204
207
  });
205
- this.name = this.constructor.name;
206
- this.code = options.code ?? error_codes_ERROR_CODES.UNKNOWN_ERROR;
207
- this.statusCode = options.status ?? 500;
208
+ this.name = 'DoubleTieError';
208
209
  this.category = options.category ?? ERROR_CATEGORIES.UNEXPECTED;
209
210
  this.meta = options.meta ?? {};
210
- this.data = {
211
- code: this.code,
212
- category: this.category,
213
- meta: this.meta
214
- };
211
+ this.statusCode = options.status ?? 500;
215
212
  tracing_withSpan('create_doubletie_error', async (span)=>{
216
213
  span.setAttributes({
217
- 'error.name': this.name,
214
+ 'error.name': this.constructor.name,
218
215
  'error.message': message,
219
216
  'error.code': this.code,
220
217
  'error.status': this.statusCode,
@@ -234,11 +231,11 @@ class error_class_DoubleTieError extends __WEBPACK_EXTERNAL_MODULE_h3__.H3Error
234
231
  const validationErrorMessage = this.meta?.validationErrors ? String(this.meta.validationErrors) : void 0;
235
232
  const stackTrace = this.stack ? this.stack.split('\n').map((line)=>line.trim()).filter((line)=>line && !line.includes('Error: ')) : [];
236
233
  return {
237
- statusCode: this.statusCode,
234
+ code: this.code,
238
235
  message: validationErrorMessage || this.message,
239
- statusMessage: this.statusMessage,
236
+ status: this.statusCode,
237
+ defined: true,
240
238
  data: {
241
- code: this.code,
242
239
  category: this.category,
243
240
  meta: this.meta,
244
241
  ...'production' === process.env.NODE_ENV ? {} : {
@@ -289,7 +286,9 @@ class error_class_DoubleTieError extends __WEBPACK_EXTERNAL_MODULE_h3__.H3Error
289
286
  const ErrorSubclass = class extends error_class_DoubleTieError {
290
287
  constructor(message, options){
291
288
  super(message, options);
292
- this.name = name;
289
+ Object.defineProperty(this, 'name', {
290
+ value: name
291
+ });
293
292
  }
294
293
  };
295
294
  Object.defineProperty(ErrorSubclass, 'name', {
@@ -306,137 +305,6 @@ class error_class_DoubleTieError extends __WEBPACK_EXTERNAL_MODULE_h3__.H3Error
306
305
  return formattedMessage;
307
306
  }
308
307
  }
309
- const levels = [
310
- 'error',
311
- 'warn',
312
- 'info',
313
- 'success',
314
- 'debug'
315
- ];
316
- function shouldPublishLog(currentLogLevel, logLevel) {
317
- const currentLevelIndex = levels.indexOf(currentLogLevel);
318
- const messageLevelIndex = levels.indexOf(logLevel);
319
- if ('debug' === currentLogLevel) return 'debug' === logLevel;
320
- return messageLevelIndex <= currentLevelIndex;
321
- }
322
- const colors = {
323
- reset: '\x1b[0m',
324
- bright: '\x1b[1m',
325
- dim: '\x1b[2m',
326
- underscore: '\x1b[4m',
327
- blink: '\x1b[5m',
328
- reverse: '\x1b[7m',
329
- hidden: '\x1b[8m',
330
- fg: {
331
- black: '\x1b[30m',
332
- red: '\x1b[31m',
333
- green: '\x1b[32m',
334
- yellow: '\x1b[33m',
335
- blue: '\x1b[34m',
336
- magenta: '\x1b[35m',
337
- cyan: '\x1b[36m',
338
- white: '\x1b[37m'
339
- },
340
- bg: {
341
- black: '\x1b[40m',
342
- red: '\x1b[41m',
343
- green: '\x1b[42m',
344
- yellow: '\x1b[43m',
345
- blue: '\x1b[44m',
346
- magenta: '\x1b[45m',
347
- cyan: '\x1b[46m',
348
- white: '\x1b[47m'
349
- }
350
- };
351
- const levelColors = {
352
- info: colors.fg.blue,
353
- success: colors.fg.green,
354
- warn: colors.fg.yellow,
355
- error: colors.fg.red,
356
- debug: colors.fg.magenta
357
- };
358
- const formatMessage = (level, message, appName = 'c15t')=>{
359
- const timestamp = new Date().toISOString();
360
- return `${colors.dim}${timestamp}${colors.reset} ${levelColors[level]}${level.toUpperCase()}${colors.reset} ${colors.bright}[${appName}]:${colors.reset} ${message}`;
361
- };
362
- const LOGGER_TRACER_NAME = '@doubletie/logger';
363
- const LOG_LEVEL_TO_SPAN_STATUS = {
364
- error: __WEBPACK_EXTERNAL_MODULE__opentelemetry_api_87359e78__.SpanStatusCode.ERROR,
365
- warn: __WEBPACK_EXTERNAL_MODULE__opentelemetry_api_87359e78__.SpanStatusCode.OK,
366
- info: __WEBPACK_EXTERNAL_MODULE__opentelemetry_api_87359e78__.SpanStatusCode.OK,
367
- success: __WEBPACK_EXTERNAL_MODULE__opentelemetry_api_87359e78__.SpanStatusCode.OK,
368
- debug: __WEBPACK_EXTERNAL_MODULE__opentelemetry_api_87359e78__.SpanStatusCode.OK
369
- };
370
- const telemetry_getTracer = (options)=>{
371
- if (options?.telemetry?.tracer) return options.telemetry.tracer;
372
- return __WEBPACK_EXTERNAL_MODULE__opentelemetry_api_87359e78__.trace.getTracer(LOGGER_TRACER_NAME);
373
- };
374
- const createLogSpan = (level, message, args = [], options)=>{
375
- if (options?.telemetry?.disabled) return null;
376
- const tracer = telemetry_getTracer(options);
377
- const span = tracer.startSpan('log_entry', {
378
- attributes: {
379
- 'log.level': level,
380
- 'log.message': message,
381
- 'log.has_args': args.length > 0,
382
- ...options?.telemetry?.defaultAttributes || {}
383
- }
384
- });
385
- if (args.length > 0 && 'object' == typeof args[0] && null !== args[0]) {
386
- const data = args[0];
387
- for (const [key, value] of Object.entries(data))if (null != value) span.setAttribute(`log.data.${key}`, String(value));
388
- }
389
- span.setStatus({
390
- code: LOG_LEVEL_TO_SPAN_STATUS[level],
391
- message: 'error' === level || 'warn' === level ? message : void 0
392
- });
393
- return span;
394
- };
395
- const withLogSpan = async (level, message, args, operation, options)=>{
396
- const span = createLogSpan(level, message, args, options);
397
- if (!span) return operation();
398
- try {
399
- const result = await operation();
400
- return result;
401
- } catch (error) {
402
- span.setStatus({
403
- code: __WEBPACK_EXTERNAL_MODULE__opentelemetry_api_87359e78__.SpanStatusCode.ERROR,
404
- message: error instanceof Error ? error.message : String(error)
405
- });
406
- throw error;
407
- } finally{
408
- span.end();
409
- }
410
- };
411
- const createLogger = (options)=>{
412
- if (options && 'object' == typeof options && levels.every((level)=>'function' == typeof options[level])) return options;
413
- const loggerOptions = options;
414
- const enabled = loggerOptions?.disabled !== true;
415
- const logLevel = loggerOptions?.level ?? 'error';
416
- const appName = loggerOptions?.appName ?? 'c15t';
417
- const logFunc = async (level, message, args = [])=>{
418
- if (!enabled || !shouldPublishLog(logLevel, level)) return;
419
- await withLogSpan(level, message, args, async ()=>{
420
- const formattedMessage = formatMessage(level, message, appName);
421
- if (!loggerOptions || 'function' != typeof loggerOptions.log) {
422
- if ('error' === level) console.error(formattedMessage, ...args);
423
- else if ('warn' === level) console.warn(formattedMessage, ...args);
424
- else if ('info' === level) console.log(formattedMessage, ...args);
425
- else if ('debug' === level) console.debug(formattedMessage, ...args);
426
- else if ('success' === level) console.log(formattedMessage, ...args);
427
- return;
428
- }
429
- loggerOptions.log('success' === level ? 'info' : level, message, ...args);
430
- });
431
- };
432
- return Object.fromEntries(levels.map((level)=>[
433
- level,
434
- (...[message, ...args])=>logFunc(level, message, args).catch((error)=>{
435
- console.error('Logger error:', error);
436
- })
437
- ]));
438
- };
439
- createLogger();
440
308
  const schema_auditLogSchema = __WEBPACK_EXTERNAL_MODULE_zod__.z.object({
441
309
  id: __WEBPACK_EXTERNAL_MODULE_zod__.z.string(),
442
310
  entityType: __WEBPACK_EXTERNAL_MODULE_zod__.z.string(),
@@ -1743,9 +1611,19 @@ const createKyselyAdapter = async (config)=>{
1743
1611
  databaseType
1744
1612
  };
1745
1613
  };
1614
+ let globalLogger;
1615
+ function getLogger(options) {
1616
+ if (!globalLogger) globalLogger = (0, __WEBPACK_EXTERNAL_MODULE__doubletie_logger_91c58a8f__.createLogger)({
1617
+ level: 'info',
1618
+ appName: 'c15t',
1619
+ ...options
1620
+ });
1621
+ return globalLogger;
1622
+ }
1746
1623
  async function getAdapter(options) {
1747
- const logger = createLogger({
1748
- appName: 'c15t'
1624
+ const logger = getLogger({
1625
+ appName: options.appName ?? 'c15t',
1626
+ ...options.logger
1749
1627
  });
1750
1628
  if (!options.database) {
1751
1629
  const tables = getConsentTables(options);
@@ -1,13 +1,13 @@
1
1
  import type { C15TOptions } from '../../../types';
2
2
  import type { SchemaDefinition } from './types';
3
3
  /**
4
- * Generates a complete database schema from the C15T configuration
4
+ * Generates a complete database schema from the c15t configuration
5
5
  *
6
6
  * This function serves as the main entry point for schema generation.
7
7
  * It retrieves table definitions from the consent module and processes
8
8
  * them into a structured schema representation.
9
9
  *
10
- * @param config - The complete C15T configuration
10
+ * @param config - The complete c15t configuration
11
11
  * @returns A structured schema definition with fields and table properties
12
12
  *
13
13
  * @example
@@ -2,7 +2,7 @@
2
2
  * Schema Generation Module
3
3
  *
4
4
  * This module handles the generation and processing of database schemas
5
- * based on the C15T configuration. It transforms table definitions into
5
+ * based on the c15t configuration. It transforms table definitions into
6
6
  * a structured schema representation that can be used for database operations.
7
7
  *
8
8
  * Example usage:
@@ -139,7 +139,7 @@ external_zod_namespaceObject.z.discriminatedUnion('type', [
139
139
  numberArrayFieldSchema
140
140
  ]);
141
141
  require("neverthrow");
142
- const external_h3_namespaceObject = require("h3");
142
+ const server_namespaceObject = require("@orpc/server");
143
143
  const error_codes_ERROR_CODES = Object.freeze({
144
144
  NOT_FOUND: 'Resource not found',
145
145
  BAD_REQUEST: 'Bad request',
@@ -172,10 +172,10 @@ const ERROR_CATEGORIES = Object.freeze({
172
172
  });
173
173
  const api_namespaceObject = require("@opentelemetry/api");
174
174
  api_namespaceObject.trace.getTracer('@doubletie/results');
175
- class error_class_DoubleTieError extends external_h3_namespaceObject.H3Error {
176
- code;
175
+ class error_class_DoubleTieError extends server_namespaceObject.ORPCError {
177
176
  category;
178
177
  meta;
178
+ statusCode;
179
179
  constructor(message, options = {
180
180
  code: error_codes_ERROR_CODES.UNKNOWN_ERROR,
181
181
  status: 500,
@@ -183,22 +183,18 @@ class error_class_DoubleTieError extends external_h3_namespaceObject.H3Error {
183
183
  cause: void 0,
184
184
  meta: {}
185
185
  }){
186
- super(message, {
187
- cause: options.cause
186
+ super(options.code ?? error_codes_ERROR_CODES.UNKNOWN_ERROR, {
187
+ message,
188
+ cause: options.cause,
189
+ data: options.meta ?? {}
188
190
  });
189
- this.name = this.constructor.name;
190
- this.code = options.code ?? error_codes_ERROR_CODES.UNKNOWN_ERROR;
191
- this.statusCode = options.status ?? 500;
191
+ this.name = 'DoubleTieError';
192
192
  this.category = options.category ?? ERROR_CATEGORIES.UNEXPECTED;
193
193
  this.meta = options.meta ?? {};
194
- this.data = {
195
- code: this.code,
196
- category: this.category,
197
- meta: this.meta
198
- };
194
+ this.statusCode = options.status ?? 500;
199
195
  tracing_withSpan('create_doubletie_error', async (span)=>{
200
196
  span.setAttributes({
201
- 'error.name': this.name,
197
+ 'error.name': this.constructor.name,
202
198
  'error.message': message,
203
199
  'error.code': this.code,
204
200
  'error.status': this.statusCode,
@@ -218,11 +214,11 @@ class error_class_DoubleTieError extends external_h3_namespaceObject.H3Error {
218
214
  const validationErrorMessage = this.meta?.validationErrors ? String(this.meta.validationErrors) : void 0;
219
215
  const stackTrace = this.stack ? this.stack.split('\n').map((line)=>line.trim()).filter((line)=>line && !line.includes('Error: ')) : [];
220
216
  return {
221
- statusCode: this.statusCode,
217
+ code: this.code,
222
218
  message: validationErrorMessage || this.message,
223
- statusMessage: this.statusMessage,
219
+ status: this.statusCode,
220
+ defined: true,
224
221
  data: {
225
- code: this.code,
226
222
  category: this.category,
227
223
  meta: this.meta,
228
224
  ...'production' === process.env.NODE_ENV ? {} : {
@@ -273,7 +269,9 @@ class error_class_DoubleTieError extends external_h3_namespaceObject.H3Error {
273
269
  const ErrorSubclass = class extends error_class_DoubleTieError {
274
270
  constructor(message, options){
275
271
  super(message, options);
276
- this.name = name;
272
+ Object.defineProperty(this, 'name', {
273
+ value: name
274
+ });
277
275
  }
278
276
  };
279
277
  Object.defineProperty(ErrorSubclass, 'name', {
@@ -290,137 +288,7 @@ class error_class_DoubleTieError extends external_h3_namespaceObject.H3Error {
290
288
  return formattedMessage;
291
289
  }
292
290
  }
293
- const colors = {
294
- reset: '\x1b[0m',
295
- bright: '\x1b[1m',
296
- dim: '\x1b[2m',
297
- underscore: '\x1b[4m',
298
- blink: '\x1b[5m',
299
- reverse: '\x1b[7m',
300
- hidden: '\x1b[8m',
301
- fg: {
302
- black: '\x1b[30m',
303
- red: '\x1b[31m',
304
- green: '\x1b[32m',
305
- yellow: '\x1b[33m',
306
- blue: '\x1b[34m',
307
- magenta: '\x1b[35m',
308
- cyan: '\x1b[36m',
309
- white: '\x1b[37m'
310
- },
311
- bg: {
312
- black: '\x1b[40m',
313
- red: '\x1b[41m',
314
- green: '\x1b[42m',
315
- yellow: '\x1b[43m',
316
- blue: '\x1b[44m',
317
- magenta: '\x1b[45m',
318
- cyan: '\x1b[46m',
319
- white: '\x1b[47m'
320
- }
321
- };
322
- const levelColors = {
323
- info: colors.fg.blue,
324
- success: colors.fg.green,
325
- warn: colors.fg.yellow,
326
- error: colors.fg.red,
327
- debug: colors.fg.magenta
328
- };
329
- const formatMessage = (level, message, appName = 'c15t')=>{
330
- const timestamp = new Date().toISOString();
331
- return `${colors.dim}${timestamp}${colors.reset} ${levelColors[level]}${level.toUpperCase()}${colors.reset} ${colors.bright}[${appName}]:${colors.reset} ${message}`;
332
- };
333
- const levels = [
334
- 'error',
335
- 'warn',
336
- 'info',
337
- 'success',
338
- 'debug'
339
- ];
340
- function shouldPublishLog(currentLogLevel, logLevel) {
341
- const currentLevelIndex = levels.indexOf(currentLogLevel);
342
- const messageLevelIndex = levels.indexOf(logLevel);
343
- if ('debug' === currentLogLevel) return 'debug' === logLevel;
344
- return messageLevelIndex <= currentLevelIndex;
345
- }
346
- const LOGGER_TRACER_NAME = '@doubletie/logger';
347
- const LOG_LEVEL_TO_SPAN_STATUS = {
348
- error: api_namespaceObject.SpanStatusCode.ERROR,
349
- warn: api_namespaceObject.SpanStatusCode.OK,
350
- info: api_namespaceObject.SpanStatusCode.OK,
351
- success: api_namespaceObject.SpanStatusCode.OK,
352
- debug: api_namespaceObject.SpanStatusCode.OK
353
- };
354
- const telemetry_getTracer = (options)=>{
355
- if (options?.telemetry?.tracer) return options.telemetry.tracer;
356
- return api_namespaceObject.trace.getTracer(LOGGER_TRACER_NAME);
357
- };
358
- const createLogSpan = (level, message, args = [], options)=>{
359
- if (options?.telemetry?.disabled) return null;
360
- const tracer = telemetry_getTracer(options);
361
- const span = tracer.startSpan('log_entry', {
362
- attributes: {
363
- 'log.level': level,
364
- 'log.message': message,
365
- 'log.has_args': args.length > 0,
366
- ...options?.telemetry?.defaultAttributes || {}
367
- }
368
- });
369
- if (args.length > 0 && 'object' == typeof args[0] && null !== args[0]) {
370
- const data = args[0];
371
- for (const [key, value] of Object.entries(data))if (null != value) span.setAttribute(`log.data.${key}`, String(value));
372
- }
373
- span.setStatus({
374
- code: LOG_LEVEL_TO_SPAN_STATUS[level],
375
- message: 'error' === level || 'warn' === level ? message : void 0
376
- });
377
- return span;
378
- };
379
- const withLogSpan = async (level, message, args, operation, options)=>{
380
- const span = createLogSpan(level, message, args, options);
381
- if (!span) return operation();
382
- try {
383
- const result = await operation();
384
- return result;
385
- } catch (error) {
386
- span.setStatus({
387
- code: api_namespaceObject.SpanStatusCode.ERROR,
388
- message: error instanceof Error ? error.message : String(error)
389
- });
390
- throw error;
391
- } finally{
392
- span.end();
393
- }
394
- };
395
- const logger_factory_createLogger = (options)=>{
396
- if (options && 'object' == typeof options && levels.every((level)=>'function' == typeof options[level])) return options;
397
- const loggerOptions = options;
398
- const enabled = loggerOptions?.disabled !== true;
399
- const logLevel = loggerOptions?.level ?? 'error';
400
- const appName = loggerOptions?.appName ?? 'c15t';
401
- const logFunc = async (level, message, args = [])=>{
402
- if (!enabled || !shouldPublishLog(logLevel, level)) return;
403
- await withLogSpan(level, message, args, async ()=>{
404
- const formattedMessage = formatMessage(level, message, appName);
405
- if (!loggerOptions || 'function' != typeof loggerOptions.log) {
406
- if ('error' === level) console.error(formattedMessage, ...args);
407
- else if ('warn' === level) console.warn(formattedMessage, ...args);
408
- else if ('info' === level) console.log(formattedMessage, ...args);
409
- else if ('debug' === level) console.debug(formattedMessage, ...args);
410
- else if ('success' === level) console.log(formattedMessage, ...args);
411
- return;
412
- }
413
- loggerOptions.log('success' === level ? 'info' : level, message, ...args);
414
- });
415
- };
416
- return Object.fromEntries(levels.map((level)=>[
417
- level,
418
- (...[message, ...args])=>logFunc(level, message, args).catch((error)=>{
419
- console.error('Logger error:', error);
420
- })
421
- ]));
422
- };
423
- logger_factory_createLogger();
291
+ const logger_namespaceObject = require("@doubletie/logger");
424
292
  const schema_auditLogSchema = external_zod_namespaceObject.z.object({
425
293
  id: external_zod_namespaceObject.z.string(),
426
294
  entityType: external_zod_namespaceObject.z.string(),
@@ -1073,6 +941,15 @@ const dialect_createKyselyAdapter = async (config)=>{
1073
941
  };
1074
942
  };
1075
943
  require("drizzle-orm");
944
+ let globalLogger;
945
+ function logger_getLogger(options) {
946
+ if (!globalLogger) globalLogger = (0, logger_namespaceObject.createLogger)({
947
+ level: 'info',
948
+ appName: 'c15t',
949
+ ...options
950
+ });
951
+ return globalLogger;
952
+ }
1076
953
  const postgresMap = {
1077
954
  string: [
1078
955
  'character varying',
@@ -1273,7 +1150,7 @@ function buildColumnAddMigrations(db, toBeAdded, dbType) {
1273
1150
  return migrations;
1274
1151
  }
1275
1152
  function buildTableCreateMigrations(db, toBeCreated, dbType) {
1276
- const logger = logger_factory_createLogger();
1153
+ const logger = logger_getLogger();
1277
1154
  const migrations = [];
1278
1155
  for (const table of toBeCreated){
1279
1156
  const fieldNames = Object.keys(table.fields);
@@ -1298,7 +1175,7 @@ function buildTableCreateMigrations(db, toBeCreated, dbType) {
1298
1175
  return migrations;
1299
1176
  }
1300
1177
  function createMigrationExecutors(migrations) {
1301
- const logger = logger_factory_createLogger();
1178
+ const logger = logger_getLogger();
1302
1179
  async function runMigrations() {
1303
1180
  for (const migration of migrations)try {
1304
1181
  await migration.execute();
@@ -1387,7 +1264,7 @@ function get_schema_getSchema(config) {
1387
1264
  }
1388
1265
  function analyzeSchemaChanges(config, tableMetadata, dbType) {
1389
1266
  const betterAuthSchema = get_schema_getSchema(config);
1390
- const logger = logger_factory_createLogger(config.logger);
1267
+ const logger = logger_getLogger(config.logger);
1391
1268
  const toBeCreated = [];
1392
1269
  const toBeAdded = [];
1393
1270
  for (const [key, value] of Object.entries(betterAuthSchema)){
@@ -1439,7 +1316,7 @@ function handleExistingTable(tableName, value, table, toBeAdded, dbType, logger)
1439
1316
  });
1440
1317
  }
1441
1318
  async function getMigrations(config) {
1442
- const logger = logger_factory_createLogger(config.logger);
1319
+ const logger = logger_getLogger(config.logger);
1443
1320
  let { kysely: db, databaseType: dbType } = await dialect_createKyselyAdapter(config);
1444
1321
  if (!dbType) {
1445
1322
  logger.warn('Could not determine database type, defaulting to sqlite. Please provide a type in the database options to avoid this.');