@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
@@ -0,0 +1,626 @@
1
+
2
+ <!doctype html>
3
+ <html lang="en">
4
+
5
+ <head>
6
+ <title>Code coverage report for All files</title>
7
+ <meta charset="utf-8" />
8
+ <link rel="stylesheet" href="prettify.css" />
9
+ <link rel="stylesheet" href="base.css" />
10
+ <link rel="shortcut icon" type="image/x-icon" href="favicon.png" />
11
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
12
+ <style type='text/css'>
13
+ .coverage-summary .sorter {
14
+ background-image: url(sort-arrow-sprite.png);
15
+ }
16
+ </style>
17
+ </head>
18
+
19
+ <body>
20
+ <div class='wrapper'>
21
+ <div class='pad1'>
22
+ <h1>All files</h1>
23
+ <div class='clearfix'>
24
+
25
+ <div class='fl pad1y space-right2'>
26
+ <span class="strong">30.72% </span>
27
+ <span class="quiet">Statements</span>
28
+ <span class='fraction'>679/2210</span>
29
+ </div>
30
+
31
+
32
+ <div class='fl pad1y space-right2'>
33
+ <span class="strong">30.41% </span>
34
+ <span class="quiet">Branches</span>
35
+ <span class='fraction'>524/1723</span>
36
+ </div>
37
+
38
+
39
+ <div class='fl pad1y space-right2'>
40
+ <span class="strong">30.38% </span>
41
+ <span class="quiet">Functions</span>
42
+ <span class='fraction'>134/441</span>
43
+ </div>
44
+
45
+
46
+ <div class='fl pad1y space-right2'>
47
+ <span class="strong">30.82% </span>
48
+ <span class="quiet">Lines</span>
49
+ <span class='fraction'>671/2177</span>
50
+ </div>
51
+
52
+
53
+ </div>
54
+ <p class="quiet">
55
+ Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
56
+ </p>
57
+ <template id="filterTemplate">
58
+ <div class="quiet">
59
+ Filter:
60
+ <input type="search" id="fileSearch">
61
+ </div>
62
+ </template>
63
+ </div>
64
+ <div class='status-line low'></div>
65
+ <div class="pad1">
66
+ <table class="coverage-summary">
67
+ <thead>
68
+ <tr>
69
+ <th data-col="file" data-fmt="html" data-html="true" class="file">File</th>
70
+ <th data-col="pic" data-type="number" data-fmt="html" data-html="true" class="pic"></th>
71
+ <th data-col="statements" data-type="number" data-fmt="pct" class="pct">Statements</th>
72
+ <th data-col="statements_raw" data-type="number" data-fmt="html" class="abs"></th>
73
+ <th data-col="branches" data-type="number" data-fmt="pct" class="pct">Branches</th>
74
+ <th data-col="branches_raw" data-type="number" data-fmt="html" class="abs"></th>
75
+ <th data-col="functions" data-type="number" data-fmt="pct" class="pct">Functions</th>
76
+ <th data-col="functions_raw" data-type="number" data-fmt="html" class="abs"></th>
77
+ <th data-col="lines" data-type="number" data-fmt="pct" class="pct">Lines</th>
78
+ <th data-col="lines_raw" data-type="number" data-fmt="html" class="abs"></th>
79
+ </tr>
80
+ </thead>
81
+ <tbody><tr>
82
+ <td class="file low" data-value="backend"><a href="backend/index.html">backend</a></td>
83
+ <td data-value="0" class="pic low">
84
+ <div class="chart"><div class="cover-fill" style="width: 0%"></div><div class="cover-empty" style="width: 100%"></div></div>
85
+ </td>
86
+ <td data-value="0" class="pct low">0%</td>
87
+ <td data-value="1" class="abs low">0/1</td>
88
+ <td data-value="100" class="pct high">100%</td>
89
+ <td data-value="0" class="abs high">0/0</td>
90
+ <td data-value="100" class="pct high">100%</td>
91
+ <td data-value="0" class="abs high">0/0</td>
92
+ <td data-value="0" class="pct low">0%</td>
93
+ <td data-value="1" class="abs low">0/1</td>
94
+ </tr>
95
+
96
+ <tr>
97
+ <td class="file low" data-value="backend/src"><a href="backend/src/index.html">backend/src</a></td>
98
+ <td data-value="0" class="pic low">
99
+ <div class="chart"><div class="cover-fill" style="width: 0%"></div><div class="cover-empty" style="width: 100%"></div></div>
100
+ </td>
101
+ <td data-value="0" class="pct low">0%</td>
102
+ <td data-value="205" class="abs low">0/205</td>
103
+ <td data-value="0" class="pct low">0%</td>
104
+ <td data-value="148" class="abs low">0/148</td>
105
+ <td data-value="0" class="pct low">0%</td>
106
+ <td data-value="24" class="abs low">0/24</td>
107
+ <td data-value="0" class="pct low">0%</td>
108
+ <td data-value="205" class="abs low">0/205</td>
109
+ </tr>
110
+
111
+ <tr>
112
+ <td class="file low" data-value="backend/src/contracts"><a href="backend/src/contracts/index.html">backend/src/contracts</a></td>
113
+ <td data-value="0" class="pic low">
114
+ <div class="chart"><div class="cover-fill" style="width: 0%"></div><div class="cover-empty" style="width: 100%"></div></div>
115
+ </td>
116
+ <td data-value="0" class="pct low">0%</td>
117
+ <td data-value="2" class="abs low">0/2</td>
118
+ <td data-value="100" class="pct high">100%</td>
119
+ <td data-value="0" class="abs high">0/0</td>
120
+ <td data-value="100" class="pct high">100%</td>
121
+ <td data-value="0" class="abs high">0/0</td>
122
+ <td data-value="0" class="pct low">0%</td>
123
+ <td data-value="2" class="abs low">0/2</td>
124
+ </tr>
125
+
126
+ <tr>
127
+ <td class="file high" data-value="backend/src/contracts/consent"><a href="backend/src/contracts/consent/index.html">backend/src/contracts/consent</a></td>
128
+ <td data-value="100" class="pic high">
129
+ <div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
130
+ </td>
131
+ <td data-value="100" class="pct high">100%</td>
132
+ <td data-value="10" class="abs high">10/10</td>
133
+ <td data-value="100" class="pct high">100%</td>
134
+ <td data-value="0" class="abs high">0/0</td>
135
+ <td data-value="100" class="pct high">100%</td>
136
+ <td data-value="0" class="abs high">0/0</td>
137
+ <td data-value="100" class="pct high">100%</td>
138
+ <td data-value="10" class="abs high">10/10</td>
139
+ </tr>
140
+
141
+ <tr>
142
+ <td class="file high" data-value="backend/src/contracts/meta"><a href="backend/src/contracts/meta/index.html">backend/src/contracts/meta</a></td>
143
+ <td data-value="100" class="pic high">
144
+ <div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
145
+ </td>
146
+ <td data-value="100" class="pct high">100%</td>
147
+ <td data-value="2" class="abs high">2/2</td>
148
+ <td data-value="100" class="pct high">100%</td>
149
+ <td data-value="0" class="abs high">0/0</td>
150
+ <td data-value="100" class="pct high">100%</td>
151
+ <td data-value="0" class="abs high">0/0</td>
152
+ <td data-value="100" class="pct high">100%</td>
153
+ <td data-value="2" class="abs high">2/2</td>
154
+ </tr>
155
+
156
+ <tr>
157
+ <td class="file high" data-value="backend/src/contracts/shared"><a href="backend/src/contracts/shared/index.html">backend/src/contracts/shared</a></td>
158
+ <td data-value="100" class="pic high">
159
+ <div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
160
+ </td>
161
+ <td data-value="100" class="pct high">100%</td>
162
+ <td data-value="3" class="abs high">3/3</td>
163
+ <td data-value="100" class="pct high">100%</td>
164
+ <td data-value="0" class="abs high">0/0</td>
165
+ <td data-value="100" class="pct high">100%</td>
166
+ <td data-value="0" class="abs high">0/0</td>
167
+ <td data-value="100" class="pct high">100%</td>
168
+ <td data-value="3" class="abs high">3/3</td>
169
+ </tr>
170
+
171
+ <tr>
172
+ <td class="file low" data-value="backend/src/handlers/consent"><a href="backend/src/handlers/consent/index.html">backend/src/handlers/consent</a></td>
173
+ <td data-value="18.51" class="pic low">
174
+ <div class="chart"><div class="cover-fill" style="width: 18%"></div><div class="cover-empty" style="width: 82%"></div></div>
175
+ </td>
176
+ <td data-value="18.51" class="pct low">18.51%</td>
177
+ <td data-value="135" class="abs low">25/135</td>
178
+ <td data-value="13.46" class="pct low">13.46%</td>
179
+ <td data-value="104" class="abs low">14/104</td>
180
+ <td data-value="16" class="pct low">16%</td>
181
+ <td data-value="25" class="abs low">4/25</td>
182
+ <td data-value="18.32" class="pct low">18.32%</td>
183
+ <td data-value="131" class="abs low">24/131</td>
184
+ </tr>
185
+
186
+ <tr>
187
+ <td class="file low" data-value="backend/src/handlers/meta"><a href="backend/src/handlers/meta/index.html">backend/src/handlers/meta</a></td>
188
+ <td data-value="0" class="pic low">
189
+ <div class="chart"><div class="cover-fill" style="width: 0%"></div><div class="cover-empty" style="width: 100%"></div></div>
190
+ </td>
191
+ <td data-value="0" class="pct low">0%</td>
192
+ <td data-value="11" class="abs low">0/11</td>
193
+ <td data-value="0" class="pct low">0%</td>
194
+ <td data-value="18" class="abs low">0/18</td>
195
+ <td data-value="0" class="pct low">0%</td>
196
+ <td data-value="2" class="abs low">0/2</td>
197
+ <td data-value="0" class="pct low">0%</td>
198
+ <td data-value="11" class="abs low">0/11</td>
199
+ </tr>
200
+
201
+ <tr>
202
+ <td class="file low" data-value="backend/src/pkgs/api-router"><a href="backend/src/pkgs/api-router/index.html">backend/src/pkgs/api-router</a></td>
203
+ <td data-value="0" class="pic low">
204
+ <div class="chart"><div class="cover-fill" style="width: 0%"></div><div class="cover-empty" style="width: 100%"></div></div>
205
+ </td>
206
+ <td data-value="0" class="pct low">0%</td>
207
+ <td data-value="29" class="abs low">0/29</td>
208
+ <td data-value="0" class="pct low">0%</td>
209
+ <td data-value="14" class="abs low">0/14</td>
210
+ <td data-value="0" class="pct low">0%</td>
211
+ <td data-value="4" class="abs low">0/4</td>
212
+ <td data-value="0" class="pct low">0%</td>
213
+ <td data-value="29" class="abs low">0/29</td>
214
+ </tr>
215
+
216
+ <tr>
217
+ <td class="file high" data-value="backend/src/pkgs/api-router/hooks"><a href="backend/src/pkgs/api-router/hooks/index.html">backend/src/pkgs/api-router/hooks</a></td>
218
+ <td data-value="93.54" class="pic high">
219
+ <div class="chart"><div class="cover-fill" style="width: 93%"></div><div class="cover-empty" style="width: 7%"></div></div>
220
+ </td>
221
+ <td data-value="93.54" class="pct high">93.54%</td>
222
+ <td data-value="31" class="abs high">29/31</td>
223
+ <td data-value="96.66" class="pct high">96.66%</td>
224
+ <td data-value="30" class="abs high">29/30</td>
225
+ <td data-value="66.66" class="pct medium">66.66%</td>
226
+ <td data-value="6" class="abs medium">4/6</td>
227
+ <td data-value="100" class="pct high">100%</td>
228
+ <td data-value="29" class="abs high">29/29</td>
229
+ </tr>
230
+
231
+ <tr>
232
+ <td class="file medium" data-value="backend/src/pkgs/api-router/utils"><a href="backend/src/pkgs/api-router/utils/index.html">backend/src/pkgs/api-router/utils</a></td>
233
+ <td data-value="54.54" class="pic medium">
234
+ <div class="chart"><div class="cover-fill" style="width: 54%"></div><div class="cover-empty" style="width: 46%"></div></div>
235
+ </td>
236
+ <td data-value="54.54" class="pct medium">54.54%</td>
237
+ <td data-value="44" class="abs medium">24/44</td>
238
+ <td data-value="38.46" class="pct low">38.46%</td>
239
+ <td data-value="26" class="abs low">10/26</td>
240
+ <td data-value="66.66" class="pct medium">66.66%</td>
241
+ <td data-value="3" class="abs medium">2/3</td>
242
+ <td data-value="54.54" class="pct medium">54.54%</td>
243
+ <td data-value="44" class="abs medium">24/44</td>
244
+ </tr>
245
+
246
+ <tr>
247
+ <td class="file medium" data-value="backend/src/pkgs/data-model/fields"><a href="backend/src/pkgs/data-model/fields/index.html">backend/src/pkgs/data-model/fields</a></td>
248
+ <td data-value="70" class="pic medium">
249
+ <div class="chart"><div class="cover-fill" style="width: 70%"></div><div class="cover-empty" style="width: 30%"></div></div>
250
+ </td>
251
+ <td data-value="70" class="pct medium">70%</td>
252
+ <td data-value="40" class="abs medium">28/40</td>
253
+ <td data-value="0" class="pct low">0%</td>
254
+ <td data-value="4" class="abs low">0/4</td>
255
+ <td data-value="14.28" class="pct low">14.28%</td>
256
+ <td data-value="7" class="abs low">1/7</td>
257
+ <td data-value="70" class="pct medium">70%</td>
258
+ <td data-value="40" class="abs medium">28/40</td>
259
+ </tr>
260
+
261
+ <tr>
262
+ <td class="file low" data-value="backend/src/pkgs/data-model/hooks"><a href="backend/src/pkgs/data-model/hooks/index.html">backend/src/pkgs/data-model/hooks</a></td>
263
+ <td data-value="0" class="pic low">
264
+ <div class="chart"><div class="cover-fill" style="width: 0%"></div><div class="cover-empty" style="width: 100%"></div></div>
265
+ </td>
266
+ <td data-value="0" class="pct low">0%</td>
267
+ <td data-value="86" class="abs low">0/86</td>
268
+ <td data-value="0" class="pct low">0%</td>
269
+ <td data-value="70" class="abs low">0/70</td>
270
+ <td data-value="0" class="pct low">0%</td>
271
+ <td data-value="11" class="abs low">0/11</td>
272
+ <td data-value="0" class="pct low">0%</td>
273
+ <td data-value="86" class="abs low">0/86</td>
274
+ </tr>
275
+
276
+ <tr>
277
+ <td class="file low" data-value="backend/src/pkgs/db-adapters"><a href="backend/src/pkgs/db-adapters/index.html">backend/src/pkgs/db-adapters</a></td>
278
+ <td data-value="28.57" class="pic low">
279
+ <div class="chart"><div class="cover-fill" style="width: 28%"></div><div class="cover-empty" style="width: 72%"></div></div>
280
+ </td>
281
+ <td data-value="28.57" class="pct low">28.57%</td>
282
+ <td data-value="21" class="abs low">6/21</td>
283
+ <td data-value="42.1" class="pct low">42.1%</td>
284
+ <td data-value="19" class="abs low">8/19</td>
285
+ <td data-value="33.33" class="pct low">33.33%</td>
286
+ <td data-value="3" class="abs low">1/3</td>
287
+ <td data-value="28.57" class="pct low">28.57%</td>
288
+ <td data-value="21" class="abs low">6/21</td>
289
+ </tr>
290
+
291
+ <tr>
292
+ <td class="file low" data-value="backend/src/pkgs/db-adapters/adapters"><a href="backend/src/pkgs/db-adapters/adapters/index.html">backend/src/pkgs/db-adapters/adapters</a></td>
293
+ <td data-value="0" class="pic low">
294
+ <div class="chart"><div class="cover-fill" style="width: 0%"></div><div class="cover-empty" style="width: 100%"></div></div>
295
+ </td>
296
+ <td data-value="0" class="pct low">0%</td>
297
+ <td data-value="12" class="abs low">0/12</td>
298
+ <td data-value="100" class="pct high">100%</td>
299
+ <td data-value="0" class="abs high">0/0</td>
300
+ <td data-value="0" class="pct low">0%</td>
301
+ <td data-value="4" class="abs low">0/4</td>
302
+ <td data-value="0" class="pct low">0%</td>
303
+ <td data-value="12" class="abs low">0/12</td>
304
+ </tr>
305
+
306
+ <tr>
307
+ <td class="file low" data-value="backend/src/pkgs/db-adapters/adapters/drizzle-adapter"><a href="backend/src/pkgs/db-adapters/adapters/drizzle-adapter/index.html">backend/src/pkgs/db-adapters/adapters/drizzle-adapter</a></td>
308
+ <td data-value="1.19" class="pic low">
309
+ <div class="chart"><div class="cover-fill" style="width: 1%"></div><div class="cover-empty" style="width: 99%"></div></div>
310
+ </td>
311
+ <td data-value="1.19" class="pct low">1.19%</td>
312
+ <td data-value="167" class="abs low">2/167</td>
313
+ <td data-value="0" class="pct low">0%</td>
314
+ <td data-value="111" class="abs low">0/111</td>
315
+ <td data-value="0" class="pct low">0%</td>
316
+ <td data-value="26" class="abs low">0/26</td>
317
+ <td data-value="1.22" class="pct low">1.22%</td>
318
+ <td data-value="163" class="abs low">2/163</td>
319
+ </tr>
320
+
321
+ <tr>
322
+ <td class="file low" data-value="backend/src/pkgs/db-adapters/adapters/kysely-adapter"><a href="backend/src/pkgs/db-adapters/adapters/kysely-adapter/index.html">backend/src/pkgs/db-adapters/adapters/kysely-adapter</a></td>
323
+ <td data-value="42.39" class="pic low">
324
+ <div class="chart"><div class="cover-fill" style="width: 42%"></div><div class="cover-empty" style="width: 58%"></div></div>
325
+ </td>
326
+ <td data-value="42.39" class="pct low">42.39%</td>
327
+ <td data-value="342" class="abs low">145/342</td>
328
+ <td data-value="33.1" class="pct low">33.1%</td>
329
+ <td data-value="296" class="abs low">98/296</td>
330
+ <td data-value="41.66" class="pct low">41.66%</td>
331
+ <td data-value="60" class="abs low">25/60</td>
332
+ <td data-value="42.39" class="pct low">42.39%</td>
333
+ <td data-value="342" class="abs low">145/342</td>
334
+ </tr>
335
+
336
+ <tr>
337
+ <td class="file low" data-value="backend/src/pkgs/db-adapters/adapters/kysely-adapter/tests"><a href="backend/src/pkgs/db-adapters/adapters/kysely-adapter/tests/index.html">backend/src/pkgs/db-adapters/adapters/kysely-adapter/tests</a></td>
338
+ <td data-value="46.23" class="pic low">
339
+ <div class="chart"><div class="cover-fill" style="width: 46%"></div><div class="cover-empty" style="width: 54%"></div></div>
340
+ </td>
341
+ <td data-value="46.23" class="pct low">46.23%</td>
342
+ <td data-value="93" class="abs low">43/93</td>
343
+ <td data-value="25" class="pct low">25%</td>
344
+ <td data-value="16" class="abs low">4/16</td>
345
+ <td data-value="38.23" class="pct low">38.23%</td>
346
+ <td data-value="34" class="abs low">13/34</td>
347
+ <td data-value="46.23" class="pct low">46.23%</td>
348
+ <td data-value="93" class="abs low">43/93</td>
349
+ </tr>
350
+
351
+ <tr>
352
+ <td class="file low" data-value="backend/src/pkgs/db-adapters/adapters/memory-adapter"><a href="backend/src/pkgs/db-adapters/adapters/memory-adapter/index.html">backend/src/pkgs/db-adapters/adapters/memory-adapter</a></td>
353
+ <td data-value="1.38" class="pic low">
354
+ <div class="chart"><div class="cover-fill" style="width: 1%"></div><div class="cover-empty" style="width: 99%"></div></div>
355
+ </td>
356
+ <td data-value="1.38" class="pct low">1.38%</td>
357
+ <td data-value="144" class="abs low">2/144</td>
358
+ <td data-value="0" class="pct low">0%</td>
359
+ <td data-value="119" class="abs low">0/119</td>
360
+ <td data-value="0" class="pct low">0%</td>
361
+ <td data-value="23" class="abs low">0/23</td>
362
+ <td data-value="1.41" class="pct low">1.41%</td>
363
+ <td data-value="141" class="abs low">2/141</td>
364
+ </tr>
365
+
366
+ <tr>
367
+ <td class="file low" data-value="backend/src/pkgs/db-adapters/adapters/prisma-adapter"><a href="backend/src/pkgs/db-adapters/adapters/prisma-adapter/index.html">backend/src/pkgs/db-adapters/adapters/prisma-adapter</a></td>
368
+ <td data-value="1.73" class="pic low">
369
+ <div class="chart"><div class="cover-fill" style="width: 1%"></div><div class="cover-empty" style="width: 99%"></div></div>
370
+ </td>
371
+ <td data-value="1.73" class="pct low">1.73%</td>
372
+ <td data-value="115" class="abs low">2/115</td>
373
+ <td data-value="0" class="pct low">0%</td>
374
+ <td data-value="95" class="abs low">0/95</td>
375
+ <td data-value="0" class="pct low">0%</td>
376
+ <td data-value="30" class="abs low">0/30</td>
377
+ <td data-value="1.8" class="pct low">1.8%</td>
378
+ <td data-value="111" class="abs low">2/111</td>
379
+ </tr>
380
+
381
+ <tr>
382
+ <td class="file medium" data-value="backend/src/pkgs/migrations"><a href="backend/src/pkgs/migrations/index.html">backend/src/pkgs/migrations</a></td>
383
+ <td data-value="59.84" class="pic medium">
384
+ <div class="chart"><div class="cover-fill" style="width: 59%"></div><div class="cover-empty" style="width: 41%"></div></div>
385
+ </td>
386
+ <td data-value="59.84" class="pct medium">59.84%</td>
387
+ <td data-value="132" class="abs medium">79/132</td>
388
+ <td data-value="46.34" class="pct low">46.34%</td>
389
+ <td data-value="82" class="abs low">38/82</td>
390
+ <td data-value="59.09" class="pct medium">59.09%</td>
391
+ <td data-value="22" class="abs medium">13/22</td>
392
+ <td data-value="60.93" class="pct medium">60.93%</td>
393
+ <td data-value="128" class="abs medium">78/128</td>
394
+ </tr>
395
+
396
+ <tr>
397
+ <td class="file medium" data-value="backend/src/pkgs/migrations/get-schema"><a href="backend/src/pkgs/migrations/get-schema/index.html">backend/src/pkgs/migrations/get-schema</a></td>
398
+ <td data-value="68.42" class="pic medium">
399
+ <div class="chart"><div class="cover-fill" style="width: 68%"></div><div class="cover-empty" style="width: 32%"></div></div>
400
+ </td>
401
+ <td data-value="68.42" class="pct medium">68.42%</td>
402
+ <td data-value="38" class="abs medium">26/38</td>
403
+ <td data-value="60" class="pct medium">60%</td>
404
+ <td data-value="25" class="abs medium">15/25</td>
405
+ <td data-value="100" class="pct high">100%</td>
406
+ <td data-value="3" class="abs high">3/3</td>
407
+ <td data-value="68.42" class="pct medium">68.42%</td>
408
+ <td data-value="38" class="abs medium">26/38</td>
409
+ </tr>
410
+
411
+ <tr>
412
+ <td class="file low" data-value="backend/src/pkgs/results"><a href="backend/src/pkgs/results/index.html">backend/src/pkgs/results</a></td>
413
+ <td data-value="0" class="pic low">
414
+ <div class="chart"><div class="cover-fill" style="width: 0%"></div><div class="cover-empty" style="width: 100%"></div></div>
415
+ </td>
416
+ <td data-value="0" class="pct low">0%</td>
417
+ <td data-value="21" class="abs low">0/21</td>
418
+ <td data-value="0" class="pct low">0%</td>
419
+ <td data-value="27" class="abs low">0/27</td>
420
+ <td data-value="0" class="pct low">0%</td>
421
+ <td data-value="6" class="abs low">0/6</td>
422
+ <td data-value="0" class="pct low">0%</td>
423
+ <td data-value="21" class="abs low">0/21</td>
424
+ </tr>
425
+
426
+ <tr>
427
+ <td class="file medium" data-value="backend/src/pkgs/results/core"><a href="backend/src/pkgs/results/core/index.html">backend/src/pkgs/results/core</a></td>
428
+ <td data-value="71.21" class="pic medium">
429
+ <div class="chart"><div class="cover-fill" style="width: 71%"></div><div class="cover-empty" style="width: 29%"></div></div>
430
+ </td>
431
+ <td data-value="71.21" class="pct medium">71.21%</td>
432
+ <td data-value="66" class="abs medium">47/66</td>
433
+ <td data-value="56.52" class="pct medium">56.52%</td>
434
+ <td data-value="69" class="abs medium">39/69</td>
435
+ <td data-value="82.35" class="pct high">82.35%</td>
436
+ <td data-value="17" class="abs high">14/17</td>
437
+ <td data-value="71.21" class="pct medium">71.21%</td>
438
+ <td data-value="66" class="abs medium">47/66</td>
439
+ </tr>
440
+
441
+ <tr>
442
+ <td class="file high" data-value="backend/src/pkgs/results/results"><a href="backend/src/pkgs/results/results/index.html">backend/src/pkgs/results/results</a></td>
443
+ <td data-value="89.55" class="pic high">
444
+ <div class="chart"><div class="cover-fill" style="width: 89%"></div><div class="cover-empty" style="width: 11%"></div></div>
445
+ </td>
446
+ <td data-value="89.55" class="pct high">89.55%</td>
447
+ <td data-value="67" class="abs high">60/67</td>
448
+ <td data-value="55.55" class="pct medium">55.55%</td>
449
+ <td data-value="45" class="abs medium">25/45</td>
450
+ <td data-value="82.75" class="pct high">82.75%</td>
451
+ <td data-value="29" class="abs high">24/29</td>
452
+ <td data-value="89.55" class="pct high">89.55%</td>
453
+ <td data-value="67" class="abs high">60/67</td>
454
+ </tr>
455
+
456
+ <tr>
457
+ <td class="file low" data-value="backend/src/pkgs/utils"><a href="backend/src/pkgs/utils/index.html">backend/src/pkgs/utils</a></td>
458
+ <td data-value="11.53" class="pic low">
459
+ <div class="chart"><div class="cover-fill" style="width: 11%"></div><div class="cover-empty" style="width: 89%"></div></div>
460
+ </td>
461
+ <td data-value="11.53" class="pct low">11.53%</td>
462
+ <td data-value="26" class="abs low">3/26</td>
463
+ <td data-value="6.45" class="pct low">6.45%</td>
464
+ <td data-value="31" class="abs low">2/31</td>
465
+ <td data-value="16.66" class="pct low">16.66%</td>
466
+ <td data-value="6" class="abs low">1/6</td>
467
+ <td data-value="11.53" class="pct low">11.53%</td>
468
+ <td data-value="26" class="abs low">3/26</td>
469
+ </tr>
470
+
471
+ <tr>
472
+ <td class="file low" data-value="backend/src/schema"><a href="backend/src/schema/index.html">backend/src/schema</a></td>
473
+ <td data-value="19.23" class="pic low">
474
+ <div class="chart"><div class="cover-fill" style="width: 19%"></div><div class="cover-empty" style="width: 81%"></div></div>
475
+ </td>
476
+ <td data-value="19.23" class="pct low">19.23%</td>
477
+ <td data-value="26" class="abs low">5/26</td>
478
+ <td data-value="16.66" class="pct low">16.66%</td>
479
+ <td data-value="12" class="abs low">2/12</td>
480
+ <td data-value="25" class="pct low">25%</td>
481
+ <td data-value="4" class="abs low">1/4</td>
482
+ <td data-value="19.23" class="pct low">19.23%</td>
483
+ <td data-value="26" class="abs low">5/26</td>
484
+ </tr>
485
+
486
+ <tr>
487
+ <td class="file low" data-value="backend/src/schema/audit-log"><a href="backend/src/schema/audit-log/index.html">backend/src/schema/audit-log</a></td>
488
+ <td data-value="33.33" class="pic low">
489
+ <div class="chart"><div class="cover-fill" style="width: 33%"></div><div class="cover-empty" style="width: 67%"></div></div>
490
+ </td>
491
+ <td data-value="33.33" class="pct low">33.33%</td>
492
+ <td data-value="12" class="abs low">4/12</td>
493
+ <td data-value="93.75" class="pct high">93.75%</td>
494
+ <td data-value="32" class="abs high">30/32</td>
495
+ <td data-value="20" class="pct low">20%</td>
496
+ <td data-value="5" class="abs low">1/5</td>
497
+ <td data-value="33.33" class="pct low">33.33%</td>
498
+ <td data-value="12" class="abs low">4/12</td>
499
+ </tr>
500
+
501
+ <tr>
502
+ <td class="file low" data-value="backend/src/schema/consent"><a href="backend/src/schema/consent/index.html">backend/src/schema/consent</a></td>
503
+ <td data-value="22.22" class="pic low">
504
+ <div class="chart"><div class="cover-fill" style="width: 22%"></div><div class="cover-empty" style="width: 78%"></div></div>
505
+ </td>
506
+ <td data-value="22.22" class="pct low">22.22%</td>
507
+ <td data-value="27" class="abs low">6/27</td>
508
+ <td data-value="76" class="pct medium">76%</td>
509
+ <td data-value="50" class="abs medium">38/50</td>
510
+ <td data-value="12.5" class="pct low">12.5%</td>
511
+ <td data-value="8" class="abs low">1/8</td>
512
+ <td data-value="22.22" class="pct low">22.22%</td>
513
+ <td data-value="27" class="abs low">6/27</td>
514
+ </tr>
515
+
516
+ <tr>
517
+ <td class="file low" data-value="backend/src/schema/consent-policy"><a href="backend/src/schema/consent-policy/index.html">backend/src/schema/consent-policy</a></td>
518
+ <td data-value="10.52" class="pic low">
519
+ <div class="chart"><div class="cover-fill" style="width: 10%"></div><div class="cover-empty" style="width: 90%"></div></div>
520
+ </td>
521
+ <td data-value="10.52" class="pct low">10.52%</td>
522
+ <td data-value="38" class="abs low">4/38</td>
523
+ <td data-value="63.41" class="pct medium">63.41%</td>
524
+ <td data-value="41" class="abs medium">26/41</td>
525
+ <td data-value="8.33" class="pct low">8.33%</td>
526
+ <td data-value="12" class="abs low">1/12</td>
527
+ <td data-value="10.52" class="pct low">10.52%</td>
528
+ <td data-value="38" class="abs low">4/38</td>
529
+ </tr>
530
+
531
+ <tr>
532
+ <td class="file low" data-value="backend/src/schema/consent-purpose"><a href="backend/src/schema/consent-purpose/index.html">backend/src/schema/consent-purpose</a></td>
533
+ <td data-value="18.75" class="pic low">
534
+ <div class="chart"><div class="cover-fill" style="width: 18%"></div><div class="cover-empty" style="width: 82%"></div></div>
535
+ </td>
536
+ <td data-value="18.75" class="pct low">18.75%</td>
537
+ <td data-value="16" class="abs low">3/16</td>
538
+ <td data-value="81.25" class="pct high">81.25%</td>
539
+ <td data-value="32" class="abs high">26/32</td>
540
+ <td data-value="11.11" class="pct low">11.11%</td>
541
+ <td data-value="9" class="abs low">1/9</td>
542
+ <td data-value="18.75" class="pct low">18.75%</td>
543
+ <td data-value="16" class="abs low">3/16</td>
544
+ </tr>
545
+
546
+ <tr>
547
+ <td class="file medium" data-value="backend/src/schema/consent-record"><a href="backend/src/schema/consent-record/index.html">backend/src/schema/consent-record</a></td>
548
+ <td data-value="62.5" class="pic medium">
549
+ <div class="chart"><div class="cover-fill" style="width: 62%"></div><div class="cover-empty" style="width: 38%"></div></div>
550
+ </td>
551
+ <td data-value="62.5" class="pct medium">62.5%</td>
552
+ <td data-value="8" class="abs medium">5/8</td>
553
+ <td data-value="100" class="pct high">100%</td>
554
+ <td data-value="22" class="abs high">22/22</td>
555
+ <td data-value="25" class="pct low">25%</td>
556
+ <td data-value="4" class="abs low">1/4</td>
557
+ <td data-value="62.5" class="pct medium">62.5%</td>
558
+ <td data-value="8" class="abs medium">5/8</td>
559
+ </tr>
560
+
561
+ <tr>
562
+ <td class="file low" data-value="backend/src/schema/domain"><a href="backend/src/schema/domain/index.html">backend/src/schema/domain</a></td>
563
+ <td data-value="9.09" class="pic low">
564
+ <div class="chart"><div class="cover-fill" style="width: 9%"></div><div class="cover-empty" style="width: 91%"></div></div>
565
+ </td>
566
+ <td data-value="9.09" class="pct low">9.09%</td>
567
+ <td data-value="33" class="abs low">3/33</td>
568
+ <td data-value="59.45" class="pct medium">59.45%</td>
569
+ <td data-value="37" class="abs medium">22/37</td>
570
+ <td data-value="8.33" class="pct low">8.33%</td>
571
+ <td data-value="12" class="abs low">1/12</td>
572
+ <td data-value="9.09" class="pct low">9.09%</td>
573
+ <td data-value="33" class="abs low">3/33</td>
574
+ </tr>
575
+
576
+ <tr>
577
+ <td class="file low" data-value="backend/src/schema/subject"><a href="backend/src/schema/subject/index.html">backend/src/schema/subject</a></td>
578
+ <td data-value="6" class="pic low">
579
+ <div class="chart"><div class="cover-fill" style="width: 6%"></div><div class="cover-empty" style="width: 94%"></div></div>
580
+ </td>
581
+ <td data-value="6" class="pct low">6%</td>
582
+ <td data-value="50" class="abs low">3/50</td>
583
+ <td data-value="36.06" class="pct low">36.06%</td>
584
+ <td data-value="61" class="abs low">22/61</td>
585
+ <td data-value="9.09" class="pct low">9.09%</td>
586
+ <td data-value="11" class="abs low">1/11</td>
587
+ <td data-value="6" class="pct low">6%</td>
588
+ <td data-value="50" class="abs low">3/50</td>
589
+ </tr>
590
+
591
+ <tr>
592
+ <td class="file medium" data-value="backend/src/testing"><a href="backend/src/testing/index.html">backend/src/testing</a></td>
593
+ <td data-value="70.06" class="pic medium">
594
+ <div class="chart"><div class="cover-fill" style="width: 70%"></div><div class="cover-empty" style="width: 30%"></div></div>
595
+ </td>
596
+ <td data-value="70.06" class="pct medium">70.06%</td>
597
+ <td data-value="157" class="abs medium">110/157</td>
598
+ <td data-value="62.06" class="pct medium">62.06%</td>
599
+ <td data-value="87" class="abs medium">54/87</td>
600
+ <td data-value="67.74" class="pct medium">67.74%</td>
601
+ <td data-value="31" class="abs medium">21/31</td>
602
+ <td data-value="71.72" class="pct medium">71.72%</td>
603
+ <td data-value="145" class="abs medium">104/145</td>
604
+ </tr>
605
+
606
+ </tbody>
607
+ </table>
608
+ </div>
609
+ <div class='push'></div><!-- for sticky footer -->
610
+ </div><!-- /wrapper -->
611
+ <div class='footer quiet pad2 space-top1 center small'>
612
+ Code coverage generated by
613
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
614
+ at 2025-05-08T11:58:35.183Z
615
+ </div>
616
+ <script src="prettify.js"></script>
617
+ <script>
618
+ window.onload = function () {
619
+ prettyPrint();
620
+ };
621
+ </script>
622
+ <script src="sorter.js"></script>
623
+ <script src="block-navigation.js"></script>
624
+ </body>
625
+ </html>
626
+
@@ -0,0 +1 @@
1
+ .pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.pun,.opn,.clo{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.str{color:#060}.kwd{color:#006;font-weight:bold}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:bold}.lit{color:#044}.pun,.opn,.clo{color:#440}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0}li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{list-style-type:none}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee}