@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,56 +0,0 @@
1
- import type { LogLevel } from './types';
2
- /**
3
- * ANSI color codes for terminal output formatting.
4
- *
5
- * @remarks
6
- * Used to add color and styling to log messages in terminal environments.
7
- *
8
- * @internal
9
- */
10
- export declare const colors: {
11
- reset: string;
12
- bright: string;
13
- dim: string;
14
- underscore: string;
15
- blink: string;
16
- reverse: string;
17
- hidden: string;
18
- fg: {
19
- black: string;
20
- red: string;
21
- green: string;
22
- yellow: string;
23
- blue: string;
24
- magenta: string;
25
- cyan: string;
26
- white: string;
27
- };
28
- bg: {
29
- black: string;
30
- red: string;
31
- green: string;
32
- yellow: string;
33
- blue: string;
34
- magenta: string;
35
- cyan: string;
36
- white: string;
37
- };
38
- };
39
- /**
40
- * Mapping of log levels to their corresponding colors.
41
- *
42
- * @internal
43
- */
44
- export declare const levelColors: Record<LogLevel, string>;
45
- /**
46
- * Formats a log message with timestamp, level indicator, and styling.
47
- *
48
- * @param level - The severity level of the message
49
- * @param message - The message content to format
50
- * @param appName - Optional application name to include in the log prefix
51
- * @returns The formatted message string with ANSI color codes
52
- *
53
- * @internal
54
- */
55
- export declare const formatMessage: (level: LogLevel, message: string, appName?: string) => string;
56
- //# sourceMappingURL=console-formatter.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"console-formatter.d.ts","sourceRoot":"","sources":["../../../src/pkgs/logger/console-formatter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAExC;;;;;;;GAOG;AACH,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4BlB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAMhD,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,aAAa,GACzB,OAAO,QAAQ,EACf,SAAS,MAAM,EACf,gBAAgB,KACd,MAOF,CAAC"}
@@ -1,240 +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
- logResult: ()=>logResult,
28
- levels: ()=>levels,
29
- logger: ()=>logger_factory_logger,
30
- logError: ()=>logResult,
31
- logErrorAsync: ()=>logResultAsync,
32
- createLogger: ()=>createLogger,
33
- shouldPublishLog: ()=>shouldPublishLog,
34
- logResultAsync: ()=>logResultAsync
35
- });
36
- const levels = [
37
- 'error',
38
- 'warn',
39
- 'info',
40
- 'success',
41
- 'debug'
42
- ];
43
- function shouldPublishLog(currentLogLevel, logLevel) {
44
- const currentLevelIndex = levels.indexOf(currentLogLevel);
45
- const messageLevelIndex = levels.indexOf(logLevel);
46
- if ('debug' === currentLogLevel) return 'debug' === logLevel;
47
- return messageLevelIndex <= currentLevelIndex;
48
- }
49
- const colors = {
50
- reset: '\x1b[0m',
51
- bright: '\x1b[1m',
52
- dim: '\x1b[2m',
53
- underscore: '\x1b[4m',
54
- blink: '\x1b[5m',
55
- reverse: '\x1b[7m',
56
- hidden: '\x1b[8m',
57
- fg: {
58
- black: '\x1b[30m',
59
- red: '\x1b[31m',
60
- green: '\x1b[32m',
61
- yellow: '\x1b[33m',
62
- blue: '\x1b[34m',
63
- magenta: '\x1b[35m',
64
- cyan: '\x1b[36m',
65
- white: '\x1b[37m'
66
- },
67
- bg: {
68
- black: '\x1b[40m',
69
- red: '\x1b[41m',
70
- green: '\x1b[42m',
71
- yellow: '\x1b[43m',
72
- blue: '\x1b[44m',
73
- magenta: '\x1b[45m',
74
- cyan: '\x1b[46m',
75
- white: '\x1b[47m'
76
- }
77
- };
78
- const levelColors = {
79
- info: colors.fg.blue,
80
- success: colors.fg.green,
81
- warn: colors.fg.yellow,
82
- error: colors.fg.red,
83
- debug: colors.fg.magenta
84
- };
85
- const formatMessage = (level, message, appName = 'c15t')=>{
86
- const timestamp = new Date().toISOString();
87
- return `${colors.dim}${timestamp}${colors.reset} ${levelColors[level]}${level.toUpperCase()}${colors.reset} ${colors.bright}[${appName}]:${colors.reset} ${message}`;
88
- };
89
- const api_namespaceObject = require("@opentelemetry/api");
90
- const LOGGER_TRACER_NAME = '@doubletie/logger';
91
- const LOG_LEVEL_TO_SPAN_STATUS = {
92
- error: api_namespaceObject.SpanStatusCode.ERROR,
93
- warn: api_namespaceObject.SpanStatusCode.OK,
94
- info: api_namespaceObject.SpanStatusCode.OK,
95
- success: api_namespaceObject.SpanStatusCode.OK,
96
- debug: api_namespaceObject.SpanStatusCode.OK
97
- };
98
- const getTracer = (options)=>{
99
- if (options?.telemetry?.tracer) return options.telemetry.tracer;
100
- return api_namespaceObject.trace.getTracer(LOGGER_TRACER_NAME);
101
- };
102
- const createLogSpan = (level, message, args = [], options)=>{
103
- if (options?.telemetry?.disabled) return null;
104
- const tracer = getTracer(options);
105
- const span = tracer.startSpan('log_entry', {
106
- attributes: {
107
- 'log.level': level,
108
- 'log.message': message,
109
- 'log.has_args': args.length > 0,
110
- ...options?.telemetry?.defaultAttributes || {}
111
- }
112
- });
113
- if (args.length > 0 && 'object' == typeof args[0] && null !== args[0]) {
114
- const data = args[0];
115
- for (const [key, value] of Object.entries(data))if (null != value) span.setAttribute(`log.data.${key}`, String(value));
116
- }
117
- span.setStatus({
118
- code: LOG_LEVEL_TO_SPAN_STATUS[level],
119
- message: 'error' === level || 'warn' === level ? message : void 0
120
- });
121
- return span;
122
- };
123
- const withLogSpan = async (level, message, args, operation, options)=>{
124
- const span = createLogSpan(level, message, args, options);
125
- if (!span) return operation();
126
- try {
127
- const result = await operation();
128
- return result;
129
- } catch (error) {
130
- span.setStatus({
131
- code: api_namespaceObject.SpanStatusCode.ERROR,
132
- message: error instanceof Error ? error.message : String(error)
133
- });
134
- throw error;
135
- } finally{
136
- span.end();
137
- }
138
- };
139
- const createLogger = (options)=>{
140
- if (options && 'object' == typeof options && levels.every((level)=>'function' == typeof options[level])) return options;
141
- const loggerOptions = options;
142
- const enabled = loggerOptions?.disabled !== true;
143
- const logLevel = loggerOptions?.level ?? 'error';
144
- const appName = loggerOptions?.appName ?? 'c15t';
145
- const logFunc = async (level, message, args = [])=>{
146
- if (!enabled || !shouldPublishLog(logLevel, level)) return;
147
- await withLogSpan(level, message, args, async ()=>{
148
- const formattedMessage = formatMessage(level, message, appName);
149
- if (!loggerOptions || 'function' != typeof loggerOptions.log) {
150
- if ('error' === level) console.error(formattedMessage, ...args);
151
- else if ('warn' === level) console.warn(formattedMessage, ...args);
152
- else if ('info' === level) console.log(formattedMessage, ...args);
153
- else if ('debug' === level) console.debug(formattedMessage, ...args);
154
- else if ('success' === level) console.log(formattedMessage, ...args);
155
- return;
156
- }
157
- loggerOptions.log('success' === level ? 'info' : level, message, ...args);
158
- });
159
- };
160
- return Object.fromEntries(levels.map((level)=>[
161
- level,
162
- (...[message, ...args])=>logFunc(level, message, args).catch((error)=>{
163
- console.error('Logger error:', error);
164
- })
165
- ]));
166
- };
167
- const logger_factory_logger = createLogger();
168
- const logResult = (result, logger, message = 'Error occurred:')=>{
169
- const tracer = getTracer();
170
- const span = tracer.startSpan('log_result');
171
- return result.mapErr((error)=>{
172
- span.setAttributes({
173
- 'error.message': error.message,
174
- 'error.code': error.code,
175
- 'error.status': error.status,
176
- 'error.category': error.category,
177
- 'error.has_meta': !!error.meta
178
- });
179
- span.setStatus({
180
- code: api_namespaceObject.SpanStatusCode.ERROR,
181
- message: error.message
182
- });
183
- logger.error(`${message} ${error.message}`, {
184
- code: error.code,
185
- status: error.status,
186
- meta: error.meta,
187
- category: error.category,
188
- stack: error.stack
189
- });
190
- span.end();
191
- return error;
192
- });
193
- };
194
- const logResultAsync = (resultAsync, logger, message = 'Error occurred:')=>{
195
- const tracer = getTracer();
196
- const span = tracer.startSpan('log_result_async');
197
- return resultAsync.mapErr((error)=>{
198
- span.setAttributes({
199
- 'error.message': error.message,
200
- 'error.code': error.code,
201
- 'error.status': error.status,
202
- 'error.category': error.category,
203
- 'error.has_meta': !!error.meta
204
- });
205
- span.setStatus({
206
- code: api_namespaceObject.SpanStatusCode.ERROR,
207
- message: error.message
208
- });
209
- logger.error(`${message} ${error.message}`, {
210
- code: error.code,
211
- status: error.status,
212
- meta: error.meta,
213
- category: error.category,
214
- stack: error.stack
215
- });
216
- span.end();
217
- return error;
218
- });
219
- };
220
- exports.createLogger = __webpack_exports__.createLogger;
221
- exports.levels = __webpack_exports__.levels;
222
- exports.logError = __webpack_exports__.logError;
223
- exports.logErrorAsync = __webpack_exports__.logErrorAsync;
224
- exports.logResult = __webpack_exports__.logResult;
225
- exports.logResultAsync = __webpack_exports__.logResultAsync;
226
- exports.logger = __webpack_exports__.logger;
227
- exports.shouldPublishLog = __webpack_exports__.shouldPublishLog;
228
- for(var __webpack_i__ in __webpack_exports__)if (-1 === [
229
- "createLogger",
230
- "levels",
231
- "logError",
232
- "logErrorAsync",
233
- "logResult",
234
- "logResultAsync",
235
- "logger",
236
- "shouldPublishLog"
237
- ].indexOf(__webpack_i__)) exports[__webpack_i__] = __webpack_exports__[__webpack_i__];
238
- Object.defineProperty(exports, '__esModule', {
239
- value: true
240
- });
@@ -1,35 +0,0 @@
1
- /**
2
- * @packageDocumentation
3
- * DoubleTie Logger Package
4
- *
5
- * A lightweight, customizable logging utility for Node.js and TypeScript applications.
6
- * It provides structured logging capabilities, error logging utilities for the Result pattern,
7
- * and flexible configuration options.
8
- *
9
- * @remarks
10
- * This package is designed to work standalone or as part of the DoubleTie SDK.
11
- * It includes:
12
- * - Configurable log levels and filters
13
- * - Color-coded console output
14
- * - Error logging for Result/ResultAsync types from neverthrow
15
- * - Custom log handlers
16
- *
17
- * @example
18
- * ```ts
19
- * import { createLogger, logResult } from '@doubletie/logger';
20
- *
21
- * // Create a custom logger
22
- * const logger = createLogger({ level: 'debug', appName: 'c15t' });
23
- *
24
- * // Log messages at different levels
25
- * logger.info('Application started');
26
- * logger.debug('Initializing components', { component: 'database' });
27
- * logger.warn('Configuration missing, using defaults');
28
- * logger.error('Failed to connect', { retry: true });
29
- * ```
30
- */
31
- export type { LogLevel, Logger, LoggerOptions, LogEntry, LoggableError, } from './types';
32
- export { levels, shouldPublishLog, } from './log-levels';
33
- export { createLogger, logger, } from './logger-factory';
34
- export { logResult, logResultAsync, logResult as logError, logResultAsync as logErrorAsync, } from './result-logging';
35
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/pkgs/logger/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAGH,YAAY,EACX,QAAQ,EACR,MAAM,EACN,aAAa,EACb,QAAQ,EACR,aAAa,GACb,MAAM,SAAS,CAAC;AAGjB,OAAO,EACN,MAAM,EACN,gBAAgB,GAChB,MAAM,cAAc,CAAC;AAGtB,OAAO,EACN,YAAY,EACZ,MAAM,GACN,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACN,SAAS,EACT,cAAc,EACd,SAAS,IAAI,QAAQ,EACrB,cAAc,IAAI,aAAa,GAC/B,MAAM,kBAAkB,CAAC"}
@@ -1,185 +0,0 @@
1
- import * as __WEBPACK_EXTERNAL_MODULE__opentelemetry_api_87359e78__ from "@opentelemetry/api";
2
- const levels = [
3
- 'error',
4
- 'warn',
5
- 'info',
6
- 'success',
7
- 'debug'
8
- ];
9
- function shouldPublishLog(currentLogLevel, logLevel) {
10
- const currentLevelIndex = levels.indexOf(currentLogLevel);
11
- const messageLevelIndex = levels.indexOf(logLevel);
12
- if ('debug' === currentLogLevel) return 'debug' === logLevel;
13
- return messageLevelIndex <= currentLevelIndex;
14
- }
15
- const colors = {
16
- reset: '\x1b[0m',
17
- bright: '\x1b[1m',
18
- dim: '\x1b[2m',
19
- underscore: '\x1b[4m',
20
- blink: '\x1b[5m',
21
- reverse: '\x1b[7m',
22
- hidden: '\x1b[8m',
23
- fg: {
24
- black: '\x1b[30m',
25
- red: '\x1b[31m',
26
- green: '\x1b[32m',
27
- yellow: '\x1b[33m',
28
- blue: '\x1b[34m',
29
- magenta: '\x1b[35m',
30
- cyan: '\x1b[36m',
31
- white: '\x1b[37m'
32
- },
33
- bg: {
34
- black: '\x1b[40m',
35
- red: '\x1b[41m',
36
- green: '\x1b[42m',
37
- yellow: '\x1b[43m',
38
- blue: '\x1b[44m',
39
- magenta: '\x1b[45m',
40
- cyan: '\x1b[46m',
41
- white: '\x1b[47m'
42
- }
43
- };
44
- const levelColors = {
45
- info: colors.fg.blue,
46
- success: colors.fg.green,
47
- warn: colors.fg.yellow,
48
- error: colors.fg.red,
49
- debug: colors.fg.magenta
50
- };
51
- const formatMessage = (level, message, appName = 'c15t')=>{
52
- const timestamp = new Date().toISOString();
53
- return `${colors.dim}${timestamp}${colors.reset} ${levelColors[level]}${level.toUpperCase()}${colors.reset} ${colors.bright}[${appName}]:${colors.reset} ${message}`;
54
- };
55
- const LOGGER_TRACER_NAME = '@doubletie/logger';
56
- const LOG_LEVEL_TO_SPAN_STATUS = {
57
- error: __WEBPACK_EXTERNAL_MODULE__opentelemetry_api_87359e78__.SpanStatusCode.ERROR,
58
- warn: __WEBPACK_EXTERNAL_MODULE__opentelemetry_api_87359e78__.SpanStatusCode.OK,
59
- info: __WEBPACK_EXTERNAL_MODULE__opentelemetry_api_87359e78__.SpanStatusCode.OK,
60
- success: __WEBPACK_EXTERNAL_MODULE__opentelemetry_api_87359e78__.SpanStatusCode.OK,
61
- debug: __WEBPACK_EXTERNAL_MODULE__opentelemetry_api_87359e78__.SpanStatusCode.OK
62
- };
63
- const getTracer = (options)=>{
64
- if (options?.telemetry?.tracer) return options.telemetry.tracer;
65
- return __WEBPACK_EXTERNAL_MODULE__opentelemetry_api_87359e78__.trace.getTracer(LOGGER_TRACER_NAME);
66
- };
67
- const createLogSpan = (level, message, args = [], options)=>{
68
- if (options?.telemetry?.disabled) return null;
69
- const tracer = getTracer(options);
70
- const span = tracer.startSpan('log_entry', {
71
- attributes: {
72
- 'log.level': level,
73
- 'log.message': message,
74
- 'log.has_args': args.length > 0,
75
- ...options?.telemetry?.defaultAttributes || {}
76
- }
77
- });
78
- if (args.length > 0 && 'object' == typeof args[0] && null !== args[0]) {
79
- const data = args[0];
80
- for (const [key, value] of Object.entries(data))if (null != value) span.setAttribute(`log.data.${key}`, String(value));
81
- }
82
- span.setStatus({
83
- code: LOG_LEVEL_TO_SPAN_STATUS[level],
84
- message: 'error' === level || 'warn' === level ? message : void 0
85
- });
86
- return span;
87
- };
88
- const withLogSpan = async (level, message, args, operation, options)=>{
89
- const span = createLogSpan(level, message, args, options);
90
- if (!span) return operation();
91
- try {
92
- const result = await operation();
93
- return result;
94
- } catch (error) {
95
- span.setStatus({
96
- code: __WEBPACK_EXTERNAL_MODULE__opentelemetry_api_87359e78__.SpanStatusCode.ERROR,
97
- message: error instanceof Error ? error.message : String(error)
98
- });
99
- throw error;
100
- } finally{
101
- span.end();
102
- }
103
- };
104
- const createLogger = (options)=>{
105
- if (options && 'object' == typeof options && levels.every((level)=>'function' == typeof options[level])) return options;
106
- const loggerOptions = options;
107
- const enabled = loggerOptions?.disabled !== true;
108
- const logLevel = loggerOptions?.level ?? 'error';
109
- const appName = loggerOptions?.appName ?? 'c15t';
110
- const logFunc = async (level, message, args = [])=>{
111
- if (!enabled || !shouldPublishLog(logLevel, level)) return;
112
- await withLogSpan(level, message, args, async ()=>{
113
- const formattedMessage = formatMessage(level, message, appName);
114
- if (!loggerOptions || 'function' != typeof loggerOptions.log) {
115
- if ('error' === level) console.error(formattedMessage, ...args);
116
- else if ('warn' === level) console.warn(formattedMessage, ...args);
117
- else if ('info' === level) console.log(formattedMessage, ...args);
118
- else if ('debug' === level) console.debug(formattedMessage, ...args);
119
- else if ('success' === level) console.log(formattedMessage, ...args);
120
- return;
121
- }
122
- loggerOptions.log('success' === level ? 'info' : level, message, ...args);
123
- });
124
- };
125
- return Object.fromEntries(levels.map((level)=>[
126
- level,
127
- (...[message, ...args])=>logFunc(level, message, args).catch((error)=>{
128
- console.error('Logger error:', error);
129
- })
130
- ]));
131
- };
132
- const logger_factory_logger = createLogger();
133
- const logResult = (result, logger, message = 'Error occurred:')=>{
134
- const tracer = getTracer();
135
- const span = tracer.startSpan('log_result');
136
- return result.mapErr((error)=>{
137
- span.setAttributes({
138
- 'error.message': error.message,
139
- 'error.code': error.code,
140
- 'error.status': error.status,
141
- 'error.category': error.category,
142
- 'error.has_meta': !!error.meta
143
- });
144
- span.setStatus({
145
- code: __WEBPACK_EXTERNAL_MODULE__opentelemetry_api_87359e78__.SpanStatusCode.ERROR,
146
- message: error.message
147
- });
148
- logger.error(`${message} ${error.message}`, {
149
- code: error.code,
150
- status: error.status,
151
- meta: error.meta,
152
- category: error.category,
153
- stack: error.stack
154
- });
155
- span.end();
156
- return error;
157
- });
158
- };
159
- const logResultAsync = (resultAsync, logger, message = 'Error occurred:')=>{
160
- const tracer = getTracer();
161
- const span = tracer.startSpan('log_result_async');
162
- return resultAsync.mapErr((error)=>{
163
- span.setAttributes({
164
- 'error.message': error.message,
165
- 'error.code': error.code,
166
- 'error.status': error.status,
167
- 'error.category': error.category,
168
- 'error.has_meta': !!error.meta
169
- });
170
- span.setStatus({
171
- code: __WEBPACK_EXTERNAL_MODULE__opentelemetry_api_87359e78__.SpanStatusCode.ERROR,
172
- message: error.message
173
- });
174
- logger.error(`${message} ${error.message}`, {
175
- code: error.code,
176
- status: error.status,
177
- meta: error.meta,
178
- category: error.category,
179
- stack: error.stack
180
- });
181
- span.end();
182
- return error;
183
- });
184
- };
185
- export { createLogger, levels, logResult as logError, logResultAsync as logErrorAsync, logResult, logResultAsync, logger_factory_logger as logger, shouldPublishLog };
@@ -1,29 +0,0 @@
1
- import type { LogLevel } from './types';
2
- /**
3
- * Array of all available log levels in order of importance.
4
- *
5
- * @remarks
6
- * This const array ensures type safety when working with log levels
7
- * and provides a reference for level comparisons.
8
- *
9
- * @public
10
- */
11
- export declare const levels: readonly ["error", "warn", "info", "success", "debug"];
12
- /**
13
- * Determines if a log message should be published based on configured log level.
14
- *
15
- * @param currentLogLevel - The configured log level threshold for the logger
16
- * @param logLevel - The level of the message being evaluated
17
- * @returns Boolean indicating whether the message should be published
18
- *
19
- * @example
20
- * ```ts
21
- * // Only publish if error level is at or above the current log level
22
- * if (shouldPublishLog('warn', 'error')) {
23
- * // This will return true as error is more severe than warn
24
- * }
25
- * ```
26
- * @public
27
- */
28
- export declare function shouldPublishLog(currentLogLevel: LogLevel, logLevel: LogLevel): boolean;
29
- //# sourceMappingURL=log-levels.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"log-levels.d.ts","sourceRoot":"","sources":["../../../src/pkgs/logger/log-levels.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAExC;;;;;;;;GAQG;AACH,eAAO,MAAM,MAAM,wDAAyD,CAAC;AAE7E;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,gBAAgB,CAC/B,eAAe,EAAE,QAAQ,EACzB,QAAQ,EAAE,QAAQ,GAChB,OAAO,CAaT"}
@@ -1,42 +0,0 @@
1
- import type { Logger, LoggerOptions } from './types';
2
- /**
3
- * Creates a configured logger instance with methods for each log level.
4
- *
5
- * @param options - Configuration options for the logger or an existing logger instance
6
- * @returns An object with methods for each log level
7
- *
8
- * @example
9
- * ```ts
10
- * // Create a logger that only shows warnings and errors
11
- * const logger = createLogger({ level: 'warn', appName: 'c15t' });
12
- *
13
- * // These will be output
14
- * logger.error('This is an error');
15
- * logger.warn('This is a warning');
16
- *
17
- * // These will be suppressed
18
- * logger.info('This info won\'t be shown');
19
- * logger.debug('This debug message won\'t be shown');
20
- * ```
21
- *
22
- * @public
23
- */
24
- export declare const createLogger: (options?: LoggerOptions | Logger) => Logger;
25
- /**
26
- * Default logger instance with standard configuration.
27
- *
28
- * @remarks
29
- * Ready-to-use logger with default settings (logs errors only).
30
- *
31
- * @example
32
- * ```ts
33
- * import { logger } from '@doubletie/logger';
34
- *
35
- * logger.error('Something went wrong');
36
- * logger.info('This won\'t be shown with default settings');
37
- * ```
38
- *
39
- * @public
40
- */
41
- export declare const logger: Logger;
42
- //# sourceMappingURL=logger-factory.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"logger-factory.d.ts","sourceRoot":"","sources":["../../../src/pkgs/logger/logger-factory.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAsB,MAAM,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAEzE;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,YAAY,GAAI,UAAU,aAAa,GAAG,MAAM,KAAG,MA2E/D,CAAC;AAEF;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,MAAM,QAAiB,CAAC"}
@@ -1,71 +0,0 @@
1
- import type { Result, ResultAsync } from 'neverthrow';
2
- import type { LoggableError } from './types';
3
- /**
4
- * Logs any errors in a Result without changing the Result.
5
- *
6
- * @remarks
7
- * This utility function allows logging errors from a Result type without
8
- * affecting the Result's flow. It uses the mapErr function to extract
9
- * and log the error if present, then returns the original Result.
10
- *
11
- * @typeParam ValueType - The type of the successful value in the Result
12
- * @typeParam ErrorType - The type of the error in the Result, must extend LoggableError
13
- *
14
- * @param result - The Result that may contain an error
15
- * @param logger - Logger instance with an error method
16
- * @param message - Optional message prefix for the error
17
- * @returns The original Result unchanged
18
- *
19
- * @example
20
- * ```ts
21
- * import { logResult } from '@doubletie/logger';
22
- * import { createLogger } from '@doubletie/logger';
23
- * import { ok, err } from 'neverthrow';
24
- *
25
- * const logger = createLogger();
26
- * const result = err({ message: 'Failed operation', code: 'OP_FAILED' });
27
- *
28
- * // Log the error but continue processing the Result
29
- * const processedResult = logResult(result, logger);
30
- * ```
31
- *
32
- * @public
33
- */
34
- export declare const logResult: <ValueType, ErrorType extends LoggableError>(result: Result<ValueType, ErrorType>, logger: {
35
- error: (message: string, ...args: unknown[]) => void;
36
- }, message?: string) => Result<ValueType, ErrorType>;
37
- /**
38
- * Logs any errors in a ResultAsync without changing the ResultAsync.
39
- *
40
- * @remarks
41
- * This utility function allows logging errors from a ResultAsync type without
42
- * affecting the ResultAsync's flow. It uses the mapErr function to extract
43
- * and log the error if present, then returns the original ResultAsync.
44
- *
45
- * @typeParam ValueType - The type of the successful value in the ResultAsync
46
- * @typeParam ErrorType - The type of the error in the ResultAsync, must extend LoggableError
47
- *
48
- * @param resultAsync - The ResultAsync that may contain an error
49
- * @param logger - Logger instance with an error method
50
- * @param message - Optional message prefix for the error
51
- * @returns The original ResultAsync unchanged
52
- *
53
- * @example
54
- * ```ts
55
- * import { logResultAsync } from '@doubletie/logger';
56
- * import { createLogger } from '@doubletie/logger';
57
- * import { okAsync, errAsync } from 'neverthrow';
58
- *
59
- * const logger = createLogger();
60
- * const resultAsync = errAsync({ message: 'Failed async operation', code: 'ASYNC_FAILED' });
61
- *
62
- * // Log the error but continue processing the ResultAsync
63
- * const processedResultAsync = logResultAsync(resultAsync, logger);
64
- * ```
65
- *
66
- * @public
67
- */
68
- export declare const logResultAsync: <ValueType, ErrorType extends LoggableError>(resultAsync: ResultAsync<ValueType, ErrorType>, logger: {
69
- error: (message: string, ...args: unknown[]) => void;
70
- }, message?: string) => ResultAsync<ValueType, ErrorType>;
71
- //# sourceMappingURL=result-logging.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"result-logging.d.ts","sourceRoot":"","sources":["../../../src/pkgs/logger/result-logging.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEtD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE7C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,eAAO,MAAM,SAAS,GAAI,SAAS,EAAE,SAAS,SAAS,aAAa,EACnE,QAAQ,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,EACpC,QAAQ;IAAE,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAA;CAAE,EAChE,gBAA2B,KACzB,MAAM,CAAC,SAAS,EAAE,SAAS,CA4B7B,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,eAAO,MAAM,cAAc,GAAI,SAAS,EAAE,SAAS,SAAS,aAAa,EACxE,aAAa,WAAW,CAAC,SAAS,EAAE,SAAS,CAAC,EAC9C,QAAQ;IAAE,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAA;CAAE,EAChE,gBAA2B,KACzB,WAAW,CAAC,SAAS,EAAE,SAAS,CA4BlC,CAAC"}