@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
@@ -1,276 +0,0 @@
1
- "use strict";
2
- var __webpack_require__ = {};
3
- (()=>{
4
- __webpack_require__.d = (exports1, definition)=>{
5
- for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
6
- enumerable: true,
7
- get: definition[key]
8
- });
9
- };
10
- })();
11
- (()=>{
12
- __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
13
- })();
14
- (()=>{
15
- __webpack_require__.r = (exports1)=>{
16
- if ('undefined' != typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
17
- value: 'Module'
18
- });
19
- Object.defineProperty(exports1, '__esModule', {
20
- value: true
21
- });
22
- };
23
- })();
24
- var __webpack_exports__ = {};
25
- __webpack_require__.r(__webpack_exports__);
26
- __webpack_require__.d(__webpack_exports__, {
27
- toNextHandler: ()=>toNextHandler,
28
- toNextJsHandler: ()=>toNextJsHandler
29
- });
30
- require("neverthrow");
31
- const external_h3_namespaceObject = require("h3");
32
- const error_codes_ERROR_CODES = Object.freeze({
33
- NOT_FOUND: 'Resource not found',
34
- BAD_REQUEST: 'Bad request',
35
- CONFLICT: 'Conflict with current state',
36
- MISSING_REQUIRED_PARAMETER: 'Missing required parameter',
37
- UNAUTHORIZED: 'Unauthorized',
38
- FORBIDDEN: 'Forbidden',
39
- INTERNAL_SERVER_ERROR: 'Internal server error',
40
- INITIALIZATION_FAILED: 'Initialization failed',
41
- DATABASE_CONNECTION_ERROR: 'Database connection error',
42
- DATABASE_QUERY_ERROR: 'Database query error',
43
- INVALID_CONFIGURATION: 'Invalid configuration',
44
- REQUEST_HANDLER_ERROR: 'Request handler error',
45
- INVALID_REQUEST: 'Invalid request',
46
- UNKNOWN_ERROR: 'Unknown error',
47
- NETWORK_ERROR: 'Network error',
48
- PLUGIN_INITIALIZATION_FAILED: 'Plugin initialization failed',
49
- API_RETRIEVAL_ERROR: 'API retrieval error',
50
- VALIDATION_ERROR: 'Validation error',
51
- UNEXPECTED: 'Unexpected error'
52
- });
53
- const ERROR_CATEGORIES = Object.freeze({
54
- VALIDATION: 'validation',
55
- AUTHORIZATION: 'authorization',
56
- STORAGE: 'storage',
57
- NETWORK: 'network',
58
- PLUGIN: 'plugin',
59
- CONFIGURATION: 'configuration',
60
- UNEXPECTED: 'unexpected'
61
- });
62
- const api_namespaceObject = require("@opentelemetry/api");
63
- api_namespaceObject.trace.getTracer('@doubletie/results');
64
- class error_class_DoubleTieError extends external_h3_namespaceObject.H3Error {
65
- code;
66
- category;
67
- meta;
68
- constructor(message, options = {
69
- code: error_codes_ERROR_CODES.UNKNOWN_ERROR,
70
- status: 500,
71
- category: ERROR_CATEGORIES.UNEXPECTED,
72
- cause: void 0,
73
- meta: {}
74
- }){
75
- super(message, {
76
- cause: options.cause
77
- });
78
- this.name = this.constructor.name;
79
- this.code = options.code ?? error_codes_ERROR_CODES.UNKNOWN_ERROR;
80
- this.statusCode = options.status ?? 500;
81
- this.category = options.category ?? ERROR_CATEGORIES.UNEXPECTED;
82
- this.meta = options.meta ?? {};
83
- this.data = {
84
- code: this.code,
85
- category: this.category,
86
- meta: this.meta
87
- };
88
- tracing_withSpan('create_doubletie_error', async (span)=>{
89
- span.setAttributes({
90
- 'error.name': this.name,
91
- 'error.message': message,
92
- 'error.code': this.code,
93
- 'error.status': this.statusCode,
94
- 'error.category': this.category,
95
- 'error.has_cause': !!this.cause,
96
- 'error.cause_type': this.cause instanceof Error ? this.cause.constructor.name : typeof this.cause,
97
- 'error.has_meta': !!this.meta
98
- });
99
- if (this.cause instanceof Error) span.recordException(this.cause);
100
- });
101
- if (Error.captureStackTrace) Error.captureStackTrace(this, this.constructor);
102
- }
103
- static isDoubleTieError(error) {
104
- return error instanceof error_class_DoubleTieError;
105
- }
106
- toJSON() {
107
- const validationErrorMessage = this.meta?.validationErrors ? String(this.meta.validationErrors) : void 0;
108
- const stackTrace = this.stack ? this.stack.split('\n').map((line)=>line.trim()).filter((line)=>line && !line.includes('Error: ')) : [];
109
- return {
110
- statusCode: this.statusCode,
111
- message: validationErrorMessage || this.message,
112
- statusMessage: this.statusMessage,
113
- data: {
114
- code: this.code,
115
- category: this.category,
116
- meta: this.meta,
117
- ...'production' === process.env.NODE_ENV ? {} : {
118
- stack: stackTrace
119
- },
120
- ...validationErrorMessage && this.message ? {
121
- originalMessage: this.message
122
- } : {},
123
- ...this.cause ? {
124
- cause: this.cause instanceof Error ? {
125
- name: this.cause.name,
126
- message: this.cause.message,
127
- stack: this.cause.stack ? this.cause.stack.split('\n').map((line)=>line.trim()) : void 0
128
- } : this.cause
129
- } : {}
130
- }
131
- };
132
- }
133
- static fromResponse(response, data) {
134
- let message = `HTTP error ${response.status}`;
135
- let errorCode = `HTTP ${response.status}`;
136
- let errorMeta = {};
137
- if (data && 'object' == typeof data && null !== data) {
138
- const errorObj = data;
139
- if ('string' == typeof errorObj.message) message = errorObj.message;
140
- if ('string' == typeof errorObj.code) errorCode = errorObj.code;
141
- if ('object' == typeof errorObj.data && null !== errorObj.data) errorMeta = errorObj.data;
142
- }
143
- return new error_class_DoubleTieError(message, {
144
- code: errorCode,
145
- status: response.status,
146
- meta: errorMeta
147
- });
148
- }
149
- withMeta(additionalMeta) {
150
- return new error_class_DoubleTieError(this.message, {
151
- code: this.code,
152
- status: this.statusCode,
153
- category: this.category,
154
- cause: this.cause instanceof Error ? this.cause : void 0,
155
- meta: {
156
- ...this.meta,
157
- ...additionalMeta
158
- }
159
- });
160
- }
161
- static createSubclass(name) {
162
- const ErrorSubclass = class extends error_class_DoubleTieError {
163
- constructor(message, options){
164
- super(message, options);
165
- this.name = name;
166
- }
167
- };
168
- Object.defineProperty(ErrorSubclass, 'name', {
169
- value: name
170
- });
171
- return ErrorSubclass;
172
- }
173
- static formatValidationError(error) {
174
- if (!error.meta) return error.message;
175
- let formattedMessage = `${error.message} (${error.code})`;
176
- if (error.meta.validationErrors) formattedMessage += `\nValidation Errors: ${JSON.stringify(error.meta.validationErrors, null, 2)}`;
177
- const otherMeta = Object.fromEntries(Object.entries(error.meta).filter(([key])=>'validationErrors' !== key));
178
- if (Object.keys(otherMeta).length > 0) formattedMessage += `\nAdditional Context: ${JSON.stringify(otherMeta, null, 2)}`;
179
- return formattedMessage;
180
- }
181
- }
182
- function toNextHandler(instance) {
183
- const handleRequest = async (request)=>{
184
- try {
185
- const basePath = instance.options?.basePath || '/api/c15t';
186
- const originalUrl = new URL(request.url);
187
- let pathWithoutBase = originalUrl.pathname;
188
- if (pathWithoutBase.startsWith(basePath)) {
189
- pathWithoutBase = pathWithoutBase.substring(basePath.length);
190
- if (!pathWithoutBase.startsWith('/')) pathWithoutBase = `/${pathWithoutBase}`;
191
- }
192
- const rewrittenUrl = new URL(originalUrl.toString());
193
- rewrittenUrl.pathname = pathWithoutBase;
194
- const rewrittenRequest = new Request(rewrittenUrl.toString(), {
195
- method: request.method,
196
- headers: request.headers,
197
- body: request.body,
198
- credentials: 'include',
199
- duplex: [
200
- 'GET',
201
- 'HEAD'
202
- ].includes(request.method) ? void 0 : 'half'
203
- });
204
- await updateBaseUrl(request, basePath);
205
- const result = await instance.handler(rewrittenRequest);
206
- return await result.match((response)=>response, (error)=>{
207
- const status = error.statusCode || 500;
208
- const message = error.message || error_codes_ERROR_CODES.INTERNAL_SERVER_ERROR;
209
- return new Response(JSON.stringify({
210
- error: true,
211
- code: error.code || error_codes_ERROR_CODES.INTERNAL_SERVER_ERROR,
212
- message,
213
- meta: error.meta
214
- }), {
215
- status,
216
- headers: {
217
- 'Content-Type': 'application/json'
218
- }
219
- });
220
- });
221
- } catch (error) {
222
- return new Response(JSON.stringify({
223
- error: true,
224
- code: error_codes_ERROR_CODES.INTERNAL_SERVER_ERROR,
225
- message: 'An unexpected error occurred',
226
- meta: {
227
- error: String(error)
228
- }
229
- }), {
230
- status: 500,
231
- headers: {
232
- 'Content-Type': 'application/json'
233
- }
234
- });
235
- }
236
- };
237
- return {
238
- GET: handleRequest,
239
- POST: handleRequest,
240
- PUT: handleRequest,
241
- DELETE: handleRequest,
242
- OPTIONS: handleRequest,
243
- HEAD: handleRequest,
244
- PATCH: handleRequest
245
- };
246
- async function updateBaseUrl(request, basePath) {
247
- if (!instance.$context) return;
248
- try {
249
- const contextResult = await instance.$context;
250
- contextResult.match((context)=>{
251
- const url = new URL(request.url);
252
- const baseURL = `${url.protocol}//${url.host}${basePath}`;
253
- if (!context.baseURL || context.baseURL !== baseURL) {
254
- context.baseURL = baseURL;
255
- if (context.options) context.options.baseURL = baseURL;
256
- }
257
- }, ()=>{});
258
- } catch {}
259
- }
260
- }
261
- function toNextJsHandler(auth) {
262
- const handler = async (request)=>'handler' in auth ? auth.handler(request) : auth(request);
263
- return {
264
- GET: handler,
265
- POST: handler
266
- };
267
- }
268
- exports.toNextHandler = __webpack_exports__.toNextHandler;
269
- exports.toNextJsHandler = __webpack_exports__.toNextJsHandler;
270
- for(var __webpack_i__ in __webpack_exports__)if (-1 === [
271
- "toNextHandler",
272
- "toNextJsHandler"
273
- ].indexOf(__webpack_i__)) exports[__webpack_i__] = __webpack_exports__[__webpack_i__];
274
- Object.defineProperty(exports, '__esModule', {
275
- value: true
276
- });
@@ -1,68 +0,0 @@
1
- import type { C15TInstance } from '../core';
2
- /**
3
- * Type definition for a Next.js route handler function
4
- */
5
- type RouteHandler = (request: Request) => Promise<Response>;
6
- /**
7
- * Type definition for Next.js route handlers object
8
- */
9
- type NextRouteHandlers = {
10
- GET: RouteHandler;
11
- POST: RouteHandler;
12
- PUT: RouteHandler;
13
- DELETE: RouteHandler;
14
- OPTIONS: RouteHandler;
15
- HEAD: RouteHandler;
16
- PATCH: RouteHandler;
17
- };
18
- /**
19
- * Convert a c15t handler to a Next.js route handler.
20
- *
21
- * This adapter converts between standard Web API and c15t, letting c15t/H3 handle
22
- * all the HTTP logic including CORS. It doesn't depend on next/server.
23
- *
24
- * @example
25
- * ```typescript
26
- * import { toNextHandler } from '@c15t/backend/integrations/next';
27
- * import { c15t } from '@/c15t';
28
- *
29
- * // app/api/c15t/[...paths]/route.ts
30
- * export const { GET, POST } = toNextHandler(c15t);
31
- * ```
32
- *
33
- * @param instance - The c15t instance to adapt
34
- * @returns An object with Next.js route handler functions for each method
35
- */
36
- export declare function toNextHandler(instance: C15TInstance): NextRouteHandlers;
37
- /**
38
- * Alternative Next.js route handler that works with any handler function.
39
- *
40
- * This utility function helps create Next.js App Router route handlers
41
- * from any function that accepts a Request and returns a Response.
42
- *
43
- * @example
44
- * ```typescript
45
- * // Using with c15t
46
- * import { toNextJsHandler } from '@c15t/backend/integrations/next';
47
- * import { c15t } from '@/c15t';
48
- *
49
- * // app/api/auth/[...slug]/route.ts
50
- * export const { GET, POST } = toNextJsHandler(c15t);
51
- *
52
- * // Using with a custom handler
53
- * export const { GET } = toNextJsHandler((request) => {
54
- * return new Response('Hello World');
55
- * });
56
- * ```
57
- *
58
- * @param auth - Either a function or an object with a handler method
59
- * @returns An object with GET and POST methods for Next.js App Router
60
- */
61
- export declare function toNextJsHandler(auth: {
62
- handler: (request: Request) => Promise<Response>;
63
- } | ((request: Request) => Promise<Response>)): {
64
- GET: (request: Request) => Promise<Response>;
65
- POST: (request: Request) => Promise<Response>;
66
- };
67
- export {};
68
- //# sourceMappingURL=next.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"next.d.ts","sourceRoot":"","sources":["../../src/integrations/next.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAI3C;;GAEG;AACH,KAAK,YAAY,GAAG,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;AAE5D;;GAEG;AACH,KAAK,iBAAiB,GAAG;IACxB,GAAG,EAAE,YAAY,CAAC;IAClB,IAAI,EAAE,YAAY,CAAC;IACnB,GAAG,EAAE,YAAY,CAAC;IAClB,MAAM,EAAE,YAAY,CAAC;IACrB,OAAO,EAAE,YAAY,CAAC;IACtB,IAAI,EAAE,YAAY,CAAC;IACnB,KAAK,EAAE,YAAY,CAAC;CACpB,CAAC;AAEF;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,YAAY,GAAG,iBAAiB,CA2HvE;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,eAAe,CAC9B,IAAI,EACD;IACA,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;CAChD,GACD,CAAC,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;mBAEZ,OAAO;oBAAP,OAAO;EAOvC"}
@@ -1,239 +0,0 @@
1
- import "neverthrow";
2
- import * as __WEBPACK_EXTERNAL_MODULE_h3__ from "h3";
3
- import * as __WEBPACK_EXTERNAL_MODULE__opentelemetry_api_87359e78__ from "@opentelemetry/api";
4
- const error_codes_ERROR_CODES = Object.freeze({
5
- NOT_FOUND: 'Resource not found',
6
- BAD_REQUEST: 'Bad request',
7
- CONFLICT: 'Conflict with current state',
8
- MISSING_REQUIRED_PARAMETER: 'Missing required parameter',
9
- UNAUTHORIZED: 'Unauthorized',
10
- FORBIDDEN: 'Forbidden',
11
- INTERNAL_SERVER_ERROR: 'Internal server error',
12
- INITIALIZATION_FAILED: 'Initialization failed',
13
- DATABASE_CONNECTION_ERROR: 'Database connection error',
14
- DATABASE_QUERY_ERROR: 'Database query error',
15
- INVALID_CONFIGURATION: 'Invalid configuration',
16
- REQUEST_HANDLER_ERROR: 'Request handler error',
17
- INVALID_REQUEST: 'Invalid request',
18
- UNKNOWN_ERROR: 'Unknown error',
19
- NETWORK_ERROR: 'Network error',
20
- PLUGIN_INITIALIZATION_FAILED: 'Plugin initialization failed',
21
- API_RETRIEVAL_ERROR: 'API retrieval error',
22
- VALIDATION_ERROR: 'Validation error',
23
- UNEXPECTED: 'Unexpected error'
24
- });
25
- const ERROR_CATEGORIES = Object.freeze({
26
- VALIDATION: 'validation',
27
- AUTHORIZATION: 'authorization',
28
- STORAGE: 'storage',
29
- NETWORK: 'network',
30
- PLUGIN: 'plugin',
31
- CONFIGURATION: 'configuration',
32
- UNEXPECTED: 'unexpected'
33
- });
34
- __WEBPACK_EXTERNAL_MODULE__opentelemetry_api_87359e78__.trace.getTracer('@doubletie/results');
35
- class error_class_DoubleTieError extends __WEBPACK_EXTERNAL_MODULE_h3__.H3Error {
36
- code;
37
- category;
38
- meta;
39
- constructor(message, options = {
40
- code: error_codes_ERROR_CODES.UNKNOWN_ERROR,
41
- status: 500,
42
- category: ERROR_CATEGORIES.UNEXPECTED,
43
- cause: void 0,
44
- meta: {}
45
- }){
46
- super(message, {
47
- cause: options.cause
48
- });
49
- this.name = this.constructor.name;
50
- this.code = options.code ?? error_codes_ERROR_CODES.UNKNOWN_ERROR;
51
- this.statusCode = options.status ?? 500;
52
- this.category = options.category ?? ERROR_CATEGORIES.UNEXPECTED;
53
- this.meta = options.meta ?? {};
54
- this.data = {
55
- code: this.code,
56
- category: this.category,
57
- meta: this.meta
58
- };
59
- tracing_withSpan('create_doubletie_error', async (span)=>{
60
- span.setAttributes({
61
- 'error.name': this.name,
62
- 'error.message': message,
63
- 'error.code': this.code,
64
- 'error.status': this.statusCode,
65
- 'error.category': this.category,
66
- 'error.has_cause': !!this.cause,
67
- 'error.cause_type': this.cause instanceof Error ? this.cause.constructor.name : typeof this.cause,
68
- 'error.has_meta': !!this.meta
69
- });
70
- if (this.cause instanceof Error) span.recordException(this.cause);
71
- });
72
- if (Error.captureStackTrace) Error.captureStackTrace(this, this.constructor);
73
- }
74
- static isDoubleTieError(error) {
75
- return error instanceof error_class_DoubleTieError;
76
- }
77
- toJSON() {
78
- const validationErrorMessage = this.meta?.validationErrors ? String(this.meta.validationErrors) : void 0;
79
- const stackTrace = this.stack ? this.stack.split('\n').map((line)=>line.trim()).filter((line)=>line && !line.includes('Error: ')) : [];
80
- return {
81
- statusCode: this.statusCode,
82
- message: validationErrorMessage || this.message,
83
- statusMessage: this.statusMessage,
84
- data: {
85
- code: this.code,
86
- category: this.category,
87
- meta: this.meta,
88
- ...'production' === process.env.NODE_ENV ? {} : {
89
- stack: stackTrace
90
- },
91
- ...validationErrorMessage && this.message ? {
92
- originalMessage: this.message
93
- } : {},
94
- ...this.cause ? {
95
- cause: this.cause instanceof Error ? {
96
- name: this.cause.name,
97
- message: this.cause.message,
98
- stack: this.cause.stack ? this.cause.stack.split('\n').map((line)=>line.trim()) : void 0
99
- } : this.cause
100
- } : {}
101
- }
102
- };
103
- }
104
- static fromResponse(response, data) {
105
- let message = `HTTP error ${response.status}`;
106
- let errorCode = `HTTP ${response.status}`;
107
- let errorMeta = {};
108
- if (data && 'object' == typeof data && null !== data) {
109
- const errorObj = data;
110
- if ('string' == typeof errorObj.message) message = errorObj.message;
111
- if ('string' == typeof errorObj.code) errorCode = errorObj.code;
112
- if ('object' == typeof errorObj.data && null !== errorObj.data) errorMeta = errorObj.data;
113
- }
114
- return new error_class_DoubleTieError(message, {
115
- code: errorCode,
116
- status: response.status,
117
- meta: errorMeta
118
- });
119
- }
120
- withMeta(additionalMeta) {
121
- return new error_class_DoubleTieError(this.message, {
122
- code: this.code,
123
- status: this.statusCode,
124
- category: this.category,
125
- cause: this.cause instanceof Error ? this.cause : void 0,
126
- meta: {
127
- ...this.meta,
128
- ...additionalMeta
129
- }
130
- });
131
- }
132
- static createSubclass(name) {
133
- const ErrorSubclass = class extends error_class_DoubleTieError {
134
- constructor(message, options){
135
- super(message, options);
136
- this.name = name;
137
- }
138
- };
139
- Object.defineProperty(ErrorSubclass, 'name', {
140
- value: name
141
- });
142
- return ErrorSubclass;
143
- }
144
- static formatValidationError(error) {
145
- if (!error.meta) return error.message;
146
- let formattedMessage = `${error.message} (${error.code})`;
147
- if (error.meta.validationErrors) formattedMessage += `\nValidation Errors: ${JSON.stringify(error.meta.validationErrors, null, 2)}`;
148
- const otherMeta = Object.fromEntries(Object.entries(error.meta).filter(([key])=>'validationErrors' !== key));
149
- if (Object.keys(otherMeta).length > 0) formattedMessage += `\nAdditional Context: ${JSON.stringify(otherMeta, null, 2)}`;
150
- return formattedMessage;
151
- }
152
- }
153
- function toNextHandler(instance) {
154
- const handleRequest = async (request)=>{
155
- try {
156
- const basePath = instance.options?.basePath || '/api/c15t';
157
- const originalUrl = new URL(request.url);
158
- let pathWithoutBase = originalUrl.pathname;
159
- if (pathWithoutBase.startsWith(basePath)) {
160
- pathWithoutBase = pathWithoutBase.substring(basePath.length);
161
- if (!pathWithoutBase.startsWith('/')) pathWithoutBase = `/${pathWithoutBase}`;
162
- }
163
- const rewrittenUrl = new URL(originalUrl.toString());
164
- rewrittenUrl.pathname = pathWithoutBase;
165
- const rewrittenRequest = new Request(rewrittenUrl.toString(), {
166
- method: request.method,
167
- headers: request.headers,
168
- body: request.body,
169
- credentials: 'include',
170
- duplex: [
171
- 'GET',
172
- 'HEAD'
173
- ].includes(request.method) ? void 0 : 'half'
174
- });
175
- await updateBaseUrl(request, basePath);
176
- const result = await instance.handler(rewrittenRequest);
177
- return await result.match((response)=>response, (error)=>{
178
- const status = error.statusCode || 500;
179
- const message = error.message || error_codes_ERROR_CODES.INTERNAL_SERVER_ERROR;
180
- return new Response(JSON.stringify({
181
- error: true,
182
- code: error.code || error_codes_ERROR_CODES.INTERNAL_SERVER_ERROR,
183
- message,
184
- meta: error.meta
185
- }), {
186
- status,
187
- headers: {
188
- 'Content-Type': 'application/json'
189
- }
190
- });
191
- });
192
- } catch (error) {
193
- return new Response(JSON.stringify({
194
- error: true,
195
- code: error_codes_ERROR_CODES.INTERNAL_SERVER_ERROR,
196
- message: 'An unexpected error occurred',
197
- meta: {
198
- error: String(error)
199
- }
200
- }), {
201
- status: 500,
202
- headers: {
203
- 'Content-Type': 'application/json'
204
- }
205
- });
206
- }
207
- };
208
- return {
209
- GET: handleRequest,
210
- POST: handleRequest,
211
- PUT: handleRequest,
212
- DELETE: handleRequest,
213
- OPTIONS: handleRequest,
214
- HEAD: handleRequest,
215
- PATCH: handleRequest
216
- };
217
- async function updateBaseUrl(request, basePath) {
218
- if (!instance.$context) return;
219
- try {
220
- const contextResult = await instance.$context;
221
- contextResult.match((context)=>{
222
- const url = new URL(request.url);
223
- const baseURL = `${url.protocol}//${url.host}${basePath}`;
224
- if (!context.baseURL || context.baseURL !== baseURL) {
225
- context.baseURL = baseURL;
226
- if (context.options) context.options.baseURL = baseURL;
227
- }
228
- }, ()=>{});
229
- } catch {}
230
- }
231
- }
232
- function toNextJsHandler(auth) {
233
- const handler = async (request)=>'handler' in auth ? auth.handler(request) : auth(request);
234
- return {
235
- GET: handler,
236
- POST: handler
237
- };
238
- }
239
- export { toNextHandler, toNextJsHandler };