@c15t/backend 1.2.0-canary.13 → 1.2.0-canary.2

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 (222) hide show
  1. package/.turbo/turbo-build.log +20 -22
  2. package/.turbo/turbo-fmt.log +4 -4
  3. package/.turbo/turbo-test.log +531 -0
  4. package/coverage/coverage-final.json +84 -0
  5. package/coverage/coverage-summary.json +85 -0
  6. package/coverage/html/backend/index.html +116 -0
  7. package/coverage/html/backend/rslib.config.ts.html +415 -0
  8. package/coverage/html/backend/src/contracts/consent/index.html +161 -0
  9. package/coverage/html/backend/src/contracts/consent/index.ts.html +112 -0
  10. package/coverage/html/backend/src/contracts/consent/post.contract.ts.html +559 -0
  11. package/coverage/html/backend/src/contracts/consent/show-banner.contract.ts.html +220 -0
  12. package/coverage/html/backend/src/contracts/consent/verify.contract.ts.html +463 -0
  13. package/coverage/html/backend/src/contracts/index.html +116 -0
  14. package/coverage/html/backend/src/contracts/index.ts.html +139 -0
  15. package/coverage/html/backend/src/contracts/meta/index.html +131 -0
  16. package/coverage/html/backend/src/contracts/meta/index.ts.html +100 -0
  17. package/coverage/html/backend/src/contracts/meta/status.contract.ts.html +196 -0
  18. package/coverage/html/backend/src/contracts/shared/index.html +116 -0
  19. package/coverage/html/backend/src/contracts/shared/jurisdiction.schema.ts.html +175 -0
  20. package/coverage/html/backend/src/core.ts.html +1624 -0
  21. package/coverage/html/backend/src/handlers/consent/index.html +161 -0
  22. package/coverage/html/backend/src/handlers/consent/index.ts.html +112 -0
  23. package/coverage/html/backend/src/handlers/consent/post.handler.ts.html +889 -0
  24. package/coverage/html/backend/src/handlers/consent/show-banner.handler.ts.html +535 -0
  25. package/coverage/html/backend/src/handlers/consent/verify.handler.ts.html +1000 -0
  26. package/coverage/html/backend/src/handlers/meta/index.html +131 -0
  27. package/coverage/html/backend/src/handlers/meta/index.ts.html +100 -0
  28. package/coverage/html/backend/src/handlers/meta/status.handler.ts.html +226 -0
  29. package/coverage/html/backend/src/index.html +161 -0
  30. package/coverage/html/backend/src/init.ts.html +1018 -0
  31. package/coverage/html/backend/src/pkgs/api-router/hooks/index.html +116 -0
  32. package/coverage/html/backend/src/pkgs/api-router/hooks/processor.ts.html +544 -0
  33. package/coverage/html/backend/src/pkgs/api-router/index.html +116 -0
  34. package/coverage/html/backend/src/pkgs/api-router/telemetry.ts.html +334 -0
  35. package/coverage/html/backend/src/pkgs/api-router/utils/cors.ts.html +304 -0
  36. package/coverage/html/backend/src/pkgs/api-router/utils/index.html +131 -0
  37. package/coverage/html/backend/src/pkgs/api-router/utils/ip.ts.html +361 -0
  38. package/coverage/html/backend/src/pkgs/data-model/fields/field-factory.ts.html +709 -0
  39. package/coverage/html/backend/src/pkgs/data-model/fields/id-generator.ts.html +256 -0
  40. package/coverage/html/backend/src/pkgs/data-model/fields/index.html +161 -0
  41. package/coverage/html/backend/src/pkgs/data-model/fields/superjson-utils.ts.html +136 -0
  42. package/coverage/html/backend/src/pkgs/data-model/fields/zod-fields.ts.html +496 -0
  43. package/coverage/html/backend/src/pkgs/data-model/hooks/create-hooks.ts.html +349 -0
  44. package/coverage/html/backend/src/pkgs/data-model/hooks/index.html +176 -0
  45. package/coverage/html/backend/src/pkgs/data-model/hooks/update-hooks.ts.html +358 -0
  46. package/coverage/html/backend/src/pkgs/data-model/hooks/update-many-hooks.ts.html +613 -0
  47. package/coverage/html/backend/src/pkgs/data-model/hooks/utils.ts.html +538 -0
  48. package/coverage/html/backend/src/pkgs/data-model/hooks/with-hooks-factory.ts.html +289 -0
  49. package/coverage/html/backend/src/pkgs/db-adapters/adapter-factory.ts.html +289 -0
  50. package/coverage/html/backend/src/pkgs/db-adapters/adapters/drizzle-adapter/drizzle-adapter.ts.html +2203 -0
  51. package/coverage/html/backend/src/pkgs/db-adapters/adapters/drizzle-adapter/index.html +116 -0
  52. package/coverage/html/backend/src/pkgs/db-adapters/adapters/index.html +116 -0
  53. package/coverage/html/backend/src/pkgs/db-adapters/adapters/kysely-adapter/dialect.ts.html +670 -0
  54. package/coverage/html/backend/src/pkgs/db-adapters/adapters/kysely-adapter/index.html +131 -0
  55. package/coverage/html/backend/src/pkgs/db-adapters/adapters/kysely-adapter/kysely-adapter.ts.html +3634 -0
  56. package/coverage/html/backend/src/pkgs/db-adapters/adapters/kysely-adapter/tests/index.html +116 -0
  57. package/coverage/html/backend/src/pkgs/db-adapters/adapters/kysely-adapter/tests/test-utils.ts.html +1417 -0
  58. package/coverage/html/backend/src/pkgs/db-adapters/adapters/memory-adapter/index.html +116 -0
  59. package/coverage/html/backend/src/pkgs/db-adapters/adapters/memory-adapter/memory-adapter.ts.html +2071 -0
  60. package/coverage/html/backend/src/pkgs/db-adapters/adapters/prisma-adapter/index.html +116 -0
  61. package/coverage/html/backend/src/pkgs/db-adapters/adapters/prisma-adapter/prisma-adapter.ts.html +1834 -0
  62. package/coverage/html/backend/src/pkgs/db-adapters/adapters/test.ts.html +316 -0
  63. package/coverage/html/backend/src/pkgs/db-adapters/index.html +131 -0
  64. package/coverage/html/backend/src/pkgs/db-adapters/utils.ts.html +238 -0
  65. package/coverage/html/backend/src/pkgs/migrations/get-migration.ts.html +343 -0
  66. package/coverage/html/backend/src/pkgs/migrations/get-schema/get-schema.ts.html +217 -0
  67. package/coverage/html/backend/src/pkgs/migrations/get-schema/index.html +146 -0
  68. package/coverage/html/backend/src/pkgs/migrations/get-schema/process-fields.ts.html +280 -0
  69. package/coverage/html/backend/src/pkgs/migrations/get-schema/process-tables.ts.html +289 -0
  70. package/coverage/html/backend/src/pkgs/migrations/index.html +176 -0
  71. package/coverage/html/backend/src/pkgs/migrations/migration-builders.ts.html +595 -0
  72. package/coverage/html/backend/src/pkgs/migrations/migration-execution.ts.html +301 -0
  73. package/coverage/html/backend/src/pkgs/migrations/schema-comparison.ts.html +694 -0
  74. package/coverage/html/backend/src/pkgs/migrations/type-mapping.ts.html +817 -0
  75. package/coverage/html/backend/src/pkgs/results/core/error-class.ts.html +976 -0
  76. package/coverage/html/backend/src/pkgs/results/core/error-codes.ts.html +703 -0
  77. package/coverage/html/backend/src/pkgs/results/core/index.html +146 -0
  78. package/coverage/html/backend/src/pkgs/results/core/tracing.ts.html +280 -0
  79. package/coverage/html/backend/src/pkgs/results/create-telemetry-options.ts.html +271 -0
  80. package/coverage/html/backend/src/pkgs/results/index.html +131 -0
  81. package/coverage/html/backend/src/pkgs/results/orpc-error-handler.ts.html +496 -0
  82. package/coverage/html/backend/src/pkgs/results/results/index.html +131 -0
  83. package/coverage/html/backend/src/pkgs/results/results/recovery-utils.ts.html +628 -0
  84. package/coverage/html/backend/src/pkgs/results/results/result-helpers.ts.html +1234 -0
  85. package/coverage/html/backend/src/pkgs/utils/env.ts.html +337 -0
  86. package/coverage/html/backend/src/pkgs/utils/index.html +146 -0
  87. package/coverage/html/backend/src/pkgs/utils/logger.ts.html +199 -0
  88. package/coverage/html/backend/src/pkgs/utils/url.ts.html +400 -0
  89. package/coverage/html/backend/src/router.ts.html +109 -0
  90. package/coverage/html/backend/src/schema/audit-log/index.html +146 -0
  91. package/coverage/html/backend/src/schema/audit-log/registry.ts.html +436 -0
  92. package/coverage/html/backend/src/schema/audit-log/schema.ts.html +223 -0
  93. package/coverage/html/backend/src/schema/audit-log/table.ts.html +640 -0
  94. package/coverage/html/backend/src/schema/consent/index.html +146 -0
  95. package/coverage/html/backend/src/schema/consent/registry.ts.html +616 -0
  96. package/coverage/html/backend/src/schema/consent/schema.ts.html +238 -0
  97. package/coverage/html/backend/src/schema/consent/table.ts.html +748 -0
  98. package/coverage/html/backend/src/schema/consent-policy/index.html +146 -0
  99. package/coverage/html/backend/src/schema/consent-policy/registry.ts.html +1063 -0
  100. package/coverage/html/backend/src/schema/consent-policy/schema.ts.html +265 -0
  101. package/coverage/html/backend/src/schema/consent-policy/table.ts.html +535 -0
  102. package/coverage/html/backend/src/schema/consent-purpose/index.html +146 -0
  103. package/coverage/html/backend/src/schema/consent-purpose/registry.ts.html +589 -0
  104. package/coverage/html/backend/src/schema/consent-purpose/schema.ts.html +259 -0
  105. package/coverage/html/backend/src/schema/consent-purpose/table.ts.html +547 -0
  106. package/coverage/html/backend/src/schema/consent-record/index.html +131 -0
  107. package/coverage/html/backend/src/schema/consent-record/schema.ts.html +211 -0
  108. package/coverage/html/backend/src/schema/consent-record/table.ts.html +457 -0
  109. package/coverage/html/backend/src/schema/create-registry.ts.html +148 -0
  110. package/coverage/html/backend/src/schema/definition.ts.html +685 -0
  111. package/coverage/html/backend/src/schema/domain/index.html +146 -0
  112. package/coverage/html/backend/src/schema/domain/registry.ts.html +973 -0
  113. package/coverage/html/backend/src/schema/domain/schema.ts.html +214 -0
  114. package/coverage/html/backend/src/schema/domain/table.ts.html +496 -0
  115. package/coverage/html/backend/src/schema/index.html +146 -0
  116. package/coverage/html/backend/src/schema/schemas.ts.html +166 -0
  117. package/coverage/html/backend/src/schema/subject/index.html +146 -0
  118. package/coverage/html/backend/src/schema/subject/registry.ts.html +973 -0
  119. package/coverage/html/backend/src/schema/subject/schema.ts.html +208 -0
  120. package/coverage/html/backend/src/schema/subject/table.ts.html +499 -0
  121. package/coverage/html/backend/src/server.ts.html +475 -0
  122. package/coverage/html/backend/src/testing/contract-testing.ts.html +1348 -0
  123. package/coverage/html/backend/src/testing/index.html +116 -0
  124. package/coverage/html/base.css +224 -0
  125. package/coverage/html/block-navigation.js +87 -0
  126. package/coverage/html/favicon.png +0 -0
  127. package/coverage/html/index.html +626 -0
  128. package/coverage/html/prettify.css +1 -0
  129. package/coverage/html/prettify.js +2 -0
  130. package/coverage/html/sort-arrow-sprite.png +0 -0
  131. package/coverage/html/sorter.js +196 -0
  132. package/dist/contracts/consent/index.d.ts +2 -2
  133. package/dist/contracts/consent/post.contract.d.ts +2 -2
  134. package/dist/contracts/consent/post.contract.d.ts.map +1 -1
  135. package/dist/contracts/index.d.ts +5 -5
  136. package/dist/contracts/index.d.ts.map +1 -1
  137. package/dist/core.cjs +244 -388
  138. package/dist/core.d.ts +5 -3
  139. package/dist/core.d.ts.map +1 -1
  140. package/dist/core.js +244 -388
  141. package/dist/handlers/consent/index.d.ts +2 -2
  142. package/dist/handlers/consent/post.handler.d.ts +2 -2
  143. package/dist/handlers/consent/show-banner.handler.d.ts.map +1 -1
  144. package/dist/pkgs/api-router/utils/core.test.d.ts +2 -0
  145. package/dist/pkgs/api-router/utils/core.test.d.ts.map +1 -0
  146. package/dist/pkgs/api-router/utils/cors.d.ts +14 -0
  147. package/dist/pkgs/api-router/utils/cors.d.ts.map +1 -0
  148. package/dist/pkgs/data-model/fields/zod-fields.d.ts +32 -32
  149. package/dist/pkgs/data-model/index.cjs +39 -59
  150. package/dist/pkgs/data-model/index.js +39 -59
  151. package/dist/pkgs/data-model/schema/index.cjs +39 -59
  152. package/dist/pkgs/data-model/schema/index.js +39 -59
  153. package/dist/pkgs/db-adapters/adapters/drizzle-adapter/index.cjs +1 -0
  154. package/dist/pkgs/db-adapters/adapters/drizzle-adapter/index.js +1 -0
  155. package/dist/pkgs/db-adapters/adapters/kysely-adapter/index.cjs +1 -0
  156. package/dist/pkgs/db-adapters/adapters/kysely-adapter/index.js +1 -0
  157. package/dist/pkgs/db-adapters/adapters/memory-adapter/index.cjs +1 -0
  158. package/dist/pkgs/db-adapters/adapters/memory-adapter/index.js +1 -0
  159. package/dist/pkgs/db-adapters/adapters/prisma-adapter/index.cjs +1 -0
  160. package/dist/pkgs/db-adapters/adapters/prisma-adapter/index.js +1 -0
  161. package/dist/pkgs/db-adapters/index.cjs +1 -0
  162. package/dist/pkgs/db-adapters/index.js +1 -0
  163. package/dist/pkgs/migrations/index.cjs +1 -0
  164. package/dist/pkgs/migrations/index.js +1 -0
  165. package/dist/router.cjs +5 -3
  166. package/dist/router.d.ts +2 -2
  167. package/dist/router.js +5 -3
  168. package/dist/schema/consent-policy/registry.d.ts +4 -4
  169. package/dist/schema/consent-policy/registry.d.ts.map +1 -1
  170. package/dist/schema/consent-policy/schema.d.ts +2 -2
  171. package/dist/schema/consent-policy/table.d.ts +2 -2
  172. package/dist/schema/consent-purpose/registry.d.ts +2 -2
  173. package/dist/schema/consent-purpose/schema.d.ts +2 -2
  174. package/dist/schema/consent-purpose/table.d.ts +2 -2
  175. package/dist/schema/create-registry.d.ts +6 -6
  176. package/dist/schema/create-registry.d.ts.map +1 -1
  177. package/dist/schema/definition.d.ts +4 -4
  178. package/dist/schema/index.cjs +39 -59
  179. package/dist/schema/index.js +39 -59
  180. package/dist/schema/schemas.d.ts +4 -4
  181. package/package.json +2 -8
  182. package/rslib.config.ts +0 -1
  183. package/src/contracts/consent/post.contract.ts +6 -1
  184. package/src/contracts/index.ts +0 -2
  185. package/src/core.ts +195 -96
  186. package/src/handlers/consent/show-banner.handler.test.ts +1 -1
  187. package/src/handlers/consent/show-banner.handler.ts +2 -1
  188. package/src/{middleware/cors/is-origin-trusted.test.ts → pkgs/api-router/utils/core.test.ts} +1 -1
  189. package/src/pkgs/api-router/utils/cors.ts +73 -0
  190. package/src/schema/consent-policy/registry.ts +50 -76
  191. package/src/server.ts +5 -1
  192. package/dist/__tests__/server.test.d.ts +0 -2
  193. package/dist/__tests__/server.test.d.ts.map +0 -1
  194. package/dist/contracts.cjs +0 -708
  195. package/dist/contracts.js +0 -661
  196. package/dist/middleware/cors/cors.d.ts +0 -37
  197. package/dist/middleware/cors/cors.d.ts.map +0 -1
  198. package/dist/middleware/cors/cors.test.d.ts +0 -2
  199. package/dist/middleware/cors/cors.test.d.ts.map +0 -1
  200. package/dist/middleware/cors/index.d.ts +0 -30
  201. package/dist/middleware/cors/index.d.ts.map +0 -1
  202. package/dist/middleware/cors/is-origin-trusted.d.ts +0 -49
  203. package/dist/middleware/cors/is-origin-trusted.d.ts.map +0 -1
  204. package/dist/middleware/cors/is-origin-trusted.test.d.ts +0 -2
  205. package/dist/middleware/cors/is-origin-trusted.test.d.ts.map +0 -1
  206. package/dist/middleware/cors/process-cors.d.ts +0 -31
  207. package/dist/middleware/cors/process-cors.d.ts.map +0 -1
  208. package/dist/middleware/openapi/config.d.ts +0 -28
  209. package/dist/middleware/openapi/config.d.ts.map +0 -1
  210. package/dist/middleware/openapi/handlers.d.ts +0 -29
  211. package/dist/middleware/openapi/handlers.d.ts.map +0 -1
  212. package/dist/middleware/openapi/index.d.ts +0 -11
  213. package/dist/middleware/openapi/index.d.ts.map +0 -1
  214. package/src/__tests__/server.test.ts +0 -96
  215. package/src/middleware/cors/cors.test.ts +0 -419
  216. package/src/middleware/cors/cors.ts +0 -192
  217. package/src/middleware/cors/index.ts +0 -30
  218. package/src/middleware/cors/is-origin-trusted.ts +0 -126
  219. package/src/middleware/cors/process-cors.ts +0 -91
  220. package/src/middleware/openapi/config.ts +0 -28
  221. package/src/middleware/openapi/handlers.ts +0 -132
  222. package/src/middleware/openapi/index.ts +0 -11
@@ -42,8 +42,8 @@ export declare const createRegistry: (ctx: RegistryContext) => {
42
42
  lastIpAddress?: string | undefined;
43
43
  } | null>;
44
44
  createConsentPolicy: (policy: Omit<import("./consent-policy").ConsentPolicy, "id" | "createdAt"> & Partial<import("./consent-policy").ConsentPolicy>, context?: import("../pkgs/types").GenericEndpointContext) => Promise<{
45
- name: string;
46
45
  type: "cookie_banner" | "privacy_policy" | "dpa" | "terms_and_conditions" | "marketing_communications" | "age_verification" | "other";
46
+ name: string;
47
47
  id: string;
48
48
  createdAt: Date;
49
49
  updatedAt: Date;
@@ -59,8 +59,8 @@ export declare const createRegistry: (ctx: RegistryContext) => {
59
59
  version?: string;
60
60
  includeInactive?: boolean;
61
61
  }) => Promise<{
62
- name: string;
63
62
  type: "cookie_banner" | "privacy_policy" | "dpa" | "terms_and_conditions" | "marketing_communications" | "age_verification" | "other";
63
+ name: string;
64
64
  id: string;
65
65
  createdAt: Date;
66
66
  updatedAt: Date;
@@ -72,8 +72,8 @@ export declare const createRegistry: (ctx: RegistryContext) => {
72
72
  expirationDate?: Date | null | undefined;
73
73
  }[]>;
74
74
  findConsentPolicyById: (policyId: string) => Promise<{
75
- name: string;
76
75
  type: "cookie_banner" | "privacy_policy" | "dpa" | "terms_and_conditions" | "marketing_communications" | "age_verification" | "other";
76
+ name: string;
77
77
  id: string;
78
78
  createdAt: Date;
79
79
  updatedAt: Date;
@@ -85,8 +85,8 @@ export declare const createRegistry: (ctx: RegistryContext) => {
85
85
  expirationDate?: Date | null | undefined;
86
86
  } | null>;
87
87
  findOrCreatePolicy: (type: import("./consent-policy").PolicyType) => Promise<{
88
- name: string;
89
88
  type: "cookie_banner" | "privacy_policy" | "dpa" | "terms_and_conditions" | "marketing_communications" | "age_verification" | "other";
89
+ name: string;
90
90
  id: string;
91
91
  createdAt: Date;
92
92
  updatedAt: Date;
@@ -98,9 +98,9 @@ export declare const createRegistry: (ctx: RegistryContext) => {
98
98
  expirationDate?: Date | null | undefined;
99
99
  }>;
100
100
  createConsentPurpose: (consentPurpose: Omit<import("./consent-purpose").ConsentPurpose, "id" | "createdAt" | "updatedAt"> & Partial<import("./consent-purpose").ConsentPurpose>, context?: import("../pkgs/types").GenericEndpointContext) => Promise<{
101
+ description: string;
101
102
  code: string;
102
103
  name: string;
103
- description: string;
104
104
  id: string;
105
105
  createdAt: Date;
106
106
  updatedAt: Date;
@@ -110,9 +110,9 @@ export declare const createRegistry: (ctx: RegistryContext) => {
110
110
  legalBasis?: string | undefined;
111
111
  }>;
112
112
  findConsentPurposeByCode: (code: string) => Promise<{
113
+ description: string;
113
114
  code: string;
114
115
  name: string;
115
- description: string;
116
116
  id: string;
117
117
  createdAt: Date;
118
118
  updatedAt: Date;
@@ -1 +1 @@
1
- {"version":3,"file":"create-registry.d.ts","sourceRoot":"","sources":["../../src/schema/create-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAWpD,eAAO,MAAM,cAAc,GAAI,KAAK,eAAe;;;;;;;;;;;iBAUmtE,CAAC;yBAA8B,CAAC;iBAAsB,CAAC;eAAoB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAA+jI,CAAC;eAAqB,CAAC;uBAA6B,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CADr8M,CAAC"}
1
+ {"version":3,"file":"create-registry.d.ts","sourceRoot":"","sources":["../../src/schema/create-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAWpD,eAAO,MAAM,cAAc,GAAI,KAAK,eAAe;;;;;;;;;;;iBAUmtE,CAAC;yBAA8B,CAAC;iBAAsB,CAAC;eAAoB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAAilH,CAAC;eAAqB,CAAC;uBAA6B,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CADv9L,CAAC"}
@@ -112,9 +112,9 @@ export declare const getConsentTables: (options: C15TOptions) => {
112
112
  createdAt: import("zod").ZodDefault<import("zod").ZodDate>;
113
113
  updatedAt: import("zod").ZodDefault<import("zod").ZodDate>;
114
114
  }, "strip", import("zod").ZodTypeAny, {
115
+ description: string;
115
116
  code: string;
116
117
  name: string;
117
- description: string;
118
118
  id: string;
119
119
  createdAt: Date;
120
120
  updatedAt: Date;
@@ -123,9 +123,9 @@ export declare const getConsentTables: (options: C15TOptions) => {
123
123
  dataCategory?: string | undefined;
124
124
  legalBasis?: string | undefined;
125
125
  }, {
126
+ description: string;
126
127
  code: string;
127
128
  name: string;
128
- description: string;
129
129
  id: string;
130
130
  createdAt?: Date | undefined;
131
131
  updatedAt?: Date | undefined;
@@ -203,8 +203,8 @@ export declare const getConsentTables: (options: C15TOptions) => {
203
203
  createdAt: import("zod").ZodDefault<import("zod").ZodDate>;
204
204
  updatedAt: import("zod").ZodDefault<import("zod").ZodDate>;
205
205
  }, "strip", import("zod").ZodTypeAny, {
206
- name: string;
207
206
  type: "cookie_banner" | "privacy_policy" | "dpa" | "terms_and_conditions" | "marketing_communications" | "age_verification" | "other";
207
+ name: string;
208
208
  id: string;
209
209
  createdAt: Date;
210
210
  updatedAt: Date;
@@ -215,8 +215,8 @@ export declare const getConsentTables: (options: C15TOptions) => {
215
215
  contentHash: string;
216
216
  expirationDate?: Date | null | undefined;
217
217
  }, {
218
- name: string;
219
218
  type: "cookie_banner" | "privacy_policy" | "dpa" | "terms_and_conditions" | "marketing_communications" | "age_verification" | "other";
219
+ name: string;
220
220
  id: string;
221
221
  version: string;
222
222
  effectiveDate: Date;
@@ -1137,21 +1137,10 @@ function consentRegistry({ adapter, ...ctx }) {
1137
1137
  };
1138
1138
  return registry;
1139
1139
  }
1140
- async function generatePolicyPlaceholder(name, date) {
1140
+ const external_node_crypto_namespaceObject = require("node:crypto");
1141
+ function generatePolicyPlaceholder(name, date) {
1141
1142
  const content = `[PLACEHOLDER] This is an automatically generated version of the ${name} policy.\n\nThis placeholder content should be replaced with actual policy terms before being presented to users.\n\nGenerated on: ${date.toISOString()}`;
1142
- let contentHash;
1143
- try {
1144
- const encoder = new TextEncoder();
1145
- const data = encoder.encode(content);
1146
- const hashBuffer = await crypto.subtle.digest('SHA-256', data);
1147
- contentHash = Array.from(new Uint8Array(hashBuffer)).map((b)=>b.toString(16).padStart(2, '0')).join('');
1148
- } catch (error) {
1149
- throw new error_class_DoubleTieError('Failed to generate policy content hash', {
1150
- code: error_codes_ERROR_CODES.INTERNAL_SERVER_ERROR,
1151
- status: 500,
1152
- cause: error instanceof Error ? error : new Error(String(error))
1153
- });
1154
- }
1143
+ const contentHash = (0, external_node_crypto_namespaceObject.createHash)('sha256').update(content).digest('hex');
1155
1144
  return {
1156
1145
  content,
1157
1146
  contentHash
@@ -1211,53 +1200,44 @@ function policyRegistry({ adapter, ...ctx }) {
1211
1200
  });
1212
1201
  return policy ? validateEntityOutput('consentPolicy', policy, ctx.options) : null;
1213
1202
  },
1214
- findOrCreatePolicy: async (type)=>await adapter.transaction({
1203
+ findOrCreatePolicy: async (type)=>adapter.transaction({
1215
1204
  callback: async (txAdapter)=>{
1216
- try {
1217
- const now = new Date();
1218
- const txRegistry = policyRegistry({
1219
- adapter: txAdapter,
1220
- ...ctx
1221
- });
1222
- const rawLatestPolicy = await txAdapter.findOne({
1223
- model: 'consentPolicy',
1224
- where: [
1225
- {
1226
- field: 'isActive',
1227
- value: true
1228
- },
1229
- {
1230
- field: 'type',
1231
- value: type
1232
- }
1233
- ],
1234
- sortBy: {
1235
- field: 'effectiveDate',
1236
- direction: 'desc'
1205
+ const now = new Date();
1206
+ const txRegistry = policyRegistry({
1207
+ adapter: txAdapter,
1208
+ ...ctx
1209
+ });
1210
+ const rawLatestPolicy = await txAdapter.findOne({
1211
+ model: 'consentPolicy',
1212
+ where: [
1213
+ {
1214
+ field: 'isActive',
1215
+ value: true
1216
+ },
1217
+ {
1218
+ field: 'type',
1219
+ value: type
1237
1220
  }
1238
- });
1239
- const latestPolicy = rawLatestPolicy ? validateEntityOutput('consentPolicy', rawLatestPolicy, ctx.options) : null;
1240
- if (latestPolicy) return latestPolicy;
1241
- const { content: defaultContent, contentHash } = await generatePolicyPlaceholder(type, now);
1242
- return txRegistry.createConsentPolicy({
1243
- version: '1.0.0',
1244
- type,
1245
- name: type,
1246
- effectiveDate: now,
1247
- content: defaultContent,
1248
- contentHash,
1249
- isActive: true,
1250
- updatedAt: now,
1251
- expirationDate: null
1252
- });
1253
- } catch (error) {
1254
- ctx.logger.error('Error in findOrCreatePolicy transaction:', error);
1255
- throw new error_class_DoubleTieError('Failed to find or create policy', {
1256
- code: error_codes_ERROR_CODES.INTERNAL_SERVER_ERROR,
1257
- status: 500,
1258
- cause: error instanceof Error ? error : new Error(String(error))
1259
- });
1260
- }
1221
+ ],
1222
+ sortBy: {
1223
+ field: 'effectiveDate',
1224
+ direction: 'desc'
1225
+ }
1226
+ });
1227
+ const latestPolicy = rawLatestPolicy ? validateEntityOutput('consentPolicy', rawLatestPolicy, ctx.options) : null;
1228
+ if (latestPolicy) return latestPolicy;
1229
+ const { content: defaultContent, contentHash } = generatePolicyPlaceholder(type, now);
1230
+ return txRegistry.createConsentPolicy({
1231
+ version: '1.0.0',
1232
+ type,
1233
+ name: type,
1234
+ effectiveDate: now,
1235
+ content: defaultContent,
1236
+ contentHash,
1237
+ isActive: true,
1238
+ updatedAt: now,
1239
+ expirationDate: null
1240
+ });
1261
1241
  }
1262
1242
  })
1263
1243
  };
@@ -4,6 +4,7 @@ import "neverthrow";
4
4
  import * as __WEBPACK_EXTERNAL_MODULE__orpc_server_0dae8408__ from "@orpc/server";
5
5
  import * as __WEBPACK_EXTERNAL_MODULE__opentelemetry_api_87359e78__ from "@opentelemetry/api";
6
6
  import * as __WEBPACK_EXTERNAL_MODULE__doubletie_logger_91c58a8f__ from "@doubletie/logger";
7
+ import * as __WEBPACK_EXTERNAL_MODULE_node_crypto_9ba42079__ from "node:crypto";
7
8
  const COMMON_TIMEZONES = {
8
9
  UTC: 'UTC',
9
10
  GMT: 'GMT',
@@ -1077,21 +1078,9 @@ function consentRegistry({ adapter, ...ctx }) {
1077
1078
  };
1078
1079
  return registry;
1079
1080
  }
1080
- async function generatePolicyPlaceholder(name, date) {
1081
+ function generatePolicyPlaceholder(name, date) {
1081
1082
  const content = `[PLACEHOLDER] This is an automatically generated version of the ${name} policy.\n\nThis placeholder content should be replaced with actual policy terms before being presented to users.\n\nGenerated on: ${date.toISOString()}`;
1082
- let contentHash;
1083
- try {
1084
- const encoder = new TextEncoder();
1085
- const data = encoder.encode(content);
1086
- const hashBuffer = await crypto.subtle.digest('SHA-256', data);
1087
- contentHash = Array.from(new Uint8Array(hashBuffer)).map((b)=>b.toString(16).padStart(2, '0')).join('');
1088
- } catch (error) {
1089
- throw new error_class_DoubleTieError('Failed to generate policy content hash', {
1090
- code: error_codes_ERROR_CODES.INTERNAL_SERVER_ERROR,
1091
- status: 500,
1092
- cause: error instanceof Error ? error : new Error(String(error))
1093
- });
1094
- }
1083
+ const contentHash = (0, __WEBPACK_EXTERNAL_MODULE_node_crypto_9ba42079__.createHash)('sha256').update(content).digest('hex');
1095
1084
  return {
1096
1085
  content,
1097
1086
  contentHash
@@ -1151,53 +1140,44 @@ function policyRegistry({ adapter, ...ctx }) {
1151
1140
  });
1152
1141
  return policy ? validateEntityOutput('consentPolicy', policy, ctx.options) : null;
1153
1142
  },
1154
- findOrCreatePolicy: async (type)=>await adapter.transaction({
1143
+ findOrCreatePolicy: async (type)=>adapter.transaction({
1155
1144
  callback: async (txAdapter)=>{
1156
- try {
1157
- const now = new Date();
1158
- const txRegistry = policyRegistry({
1159
- adapter: txAdapter,
1160
- ...ctx
1161
- });
1162
- const rawLatestPolicy = await txAdapter.findOne({
1163
- model: 'consentPolicy',
1164
- where: [
1165
- {
1166
- field: 'isActive',
1167
- value: true
1168
- },
1169
- {
1170
- field: 'type',
1171
- value: type
1172
- }
1173
- ],
1174
- sortBy: {
1175
- field: 'effectiveDate',
1176
- direction: 'desc'
1145
+ const now = new Date();
1146
+ const txRegistry = policyRegistry({
1147
+ adapter: txAdapter,
1148
+ ...ctx
1149
+ });
1150
+ const rawLatestPolicy = await txAdapter.findOne({
1151
+ model: 'consentPolicy',
1152
+ where: [
1153
+ {
1154
+ field: 'isActive',
1155
+ value: true
1156
+ },
1157
+ {
1158
+ field: 'type',
1159
+ value: type
1177
1160
  }
1178
- });
1179
- const latestPolicy = rawLatestPolicy ? validateEntityOutput('consentPolicy', rawLatestPolicy, ctx.options) : null;
1180
- if (latestPolicy) return latestPolicy;
1181
- const { content: defaultContent, contentHash } = await generatePolicyPlaceholder(type, now);
1182
- return txRegistry.createConsentPolicy({
1183
- version: '1.0.0',
1184
- type,
1185
- name: type,
1186
- effectiveDate: now,
1187
- content: defaultContent,
1188
- contentHash,
1189
- isActive: true,
1190
- updatedAt: now,
1191
- expirationDate: null
1192
- });
1193
- } catch (error) {
1194
- ctx.logger.error('Error in findOrCreatePolicy transaction:', error);
1195
- throw new error_class_DoubleTieError('Failed to find or create policy', {
1196
- code: error_codes_ERROR_CODES.INTERNAL_SERVER_ERROR,
1197
- status: 500,
1198
- cause: error instanceof Error ? error : new Error(String(error))
1199
- });
1200
- }
1161
+ ],
1162
+ sortBy: {
1163
+ field: 'effectiveDate',
1164
+ direction: 'desc'
1165
+ }
1166
+ });
1167
+ const latestPolicy = rawLatestPolicy ? validateEntityOutput('consentPolicy', rawLatestPolicy, ctx.options) : null;
1168
+ if (latestPolicy) return latestPolicy;
1169
+ const { content: defaultContent, contentHash } = generatePolicyPlaceholder(type, now);
1170
+ return txRegistry.createConsentPolicy({
1171
+ version: '1.0.0',
1172
+ type,
1173
+ name: type,
1174
+ effectiveDate: now,
1175
+ content: defaultContent,
1176
+ contentHash,
1177
+ isActive: true,
1178
+ updatedAt: now,
1179
+ expirationDate: null
1180
+ });
1201
1181
  }
1202
1182
  })
1203
1183
  };
@@ -90,8 +90,8 @@ export declare const schemas: {
90
90
  createdAt: z.ZodDefault<z.ZodDate>;
91
91
  updatedAt: z.ZodDefault<z.ZodDate>;
92
92
  }, "strip", z.ZodTypeAny, {
93
- name: string;
94
93
  type: "cookie_banner" | "privacy_policy" | "dpa" | "terms_and_conditions" | "marketing_communications" | "age_verification" | "other";
94
+ name: string;
95
95
  id: string;
96
96
  createdAt: Date;
97
97
  updatedAt: Date;
@@ -102,8 +102,8 @@ export declare const schemas: {
102
102
  contentHash: string;
103
103
  expirationDate?: Date | null | undefined;
104
104
  }, {
105
- name: string;
106
105
  type: "cookie_banner" | "privacy_policy" | "dpa" | "terms_and_conditions" | "marketing_communications" | "age_verification" | "other";
106
+ name: string;
107
107
  id: string;
108
108
  version: string;
109
109
  effectiveDate: Date;
@@ -126,9 +126,9 @@ export declare const schemas: {
126
126
  createdAt: z.ZodDefault<z.ZodDate>;
127
127
  updatedAt: z.ZodDefault<z.ZodDate>;
128
128
  }, "strip", z.ZodTypeAny, {
129
+ description: string;
129
130
  code: string;
130
131
  name: string;
131
- description: string;
132
132
  id: string;
133
133
  createdAt: Date;
134
134
  updatedAt: Date;
@@ -137,9 +137,9 @@ export declare const schemas: {
137
137
  dataCategory?: string | undefined;
138
138
  legalBasis?: string | undefined;
139
139
  }, {
140
+ description: string;
140
141
  code: string;
141
142
  name: string;
142
- description: string;
143
143
  id: string;
144
144
  createdAt?: Date | undefined;
145
145
  updatedAt?: Date | undefined;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@c15t/backend",
3
- "version": "1.2.0-canary.13",
3
+ "version": "1.2.0-canary.2",
4
4
  "license": "GPL-3.0-only",
5
5
  "type": "module",
6
6
  "exports": {
@@ -19,11 +19,6 @@
19
19
  "import": "./dist/schema/index.js",
20
20
  "require": "./dist/schema/index.cjs"
21
21
  },
22
- "./contracts": {
23
- "types": "./dist/contracts/index.d.ts",
24
- "import": "./dist/contracts.js",
25
- "require": "./dist/contracts.cjs"
26
- },
27
22
  "./pkgs/data-model/fields": {
28
23
  "types": "./dist/pkgs/data-model/fields/index.d.ts",
29
24
  "import": "./dist/pkgs/data-model/fields/index.js",
@@ -109,7 +104,6 @@
109
104
  "@types/node": "20.14.13",
110
105
  "@types/pg": "8.11.6",
111
106
  "kysely-pglite": "^0.6.1",
112
- "msw": "^2.7.6",
113
107
  "typescript": "^5.8.3",
114
108
  "vitest": "^3.1.1",
115
109
  "@c15t/typescript-config": "0.0.1-beta.1",
@@ -122,7 +116,7 @@
122
116
  "build": "rslib build",
123
117
  "check-types": "tsc --noEmit",
124
118
  "dev": "rslib build --watch",
125
- "fmt": "pnpm biome format --write . && pnpm biome check --formatter-enabled=false --linter-enabled=false --organize-imports-enabled=true --write",
119
+ "fmt": "pnpm biome format --write . && biome check --formatter-enabled=false --linter-enabled=false --organize-imports-enabled=true --write",
126
120
  "knip": "knip",
127
121
  "lint": "pnpm biome lint ./src",
128
122
  "start": "node dist/server.cjs",
package/rslib.config.ts CHANGED
@@ -62,7 +62,6 @@ export default defineConfig({
62
62
  entry: {
63
63
  core: ['./src/core.ts'],
64
64
  router: ['./src/router.ts'],
65
- contracts: ['./src/contracts/index.ts'],
66
65
  'schema/index': ['./src/schema/index.ts'],
67
66
  'pkgs/data-model/fields/index': ['./src/pkgs/data-model/fields/index.ts'],
68
67
  'pkgs/data-model/index': ['./src/pkgs/data-model/index.ts'],
@@ -6,7 +6,12 @@ import { PolicyTypeSchema } from '~/schema';
6
6
  const baseConsentSchema = z.object({
7
7
  subjectId: z.string().optional(),
8
8
  externalSubjectId: z.string().optional(),
9
- domain: z.string(),
9
+ domain: z
10
+ .string()
11
+ .regex(
12
+ /^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)+[a-z]{2,}$/i,
13
+ 'invalid domain'
14
+ ),
10
15
  type: PolicyTypeSchema,
11
16
  metadata: z.record(z.unknown()).optional(),
12
17
  });
@@ -12,8 +12,6 @@ const config = {
12
12
  meta: metaContracts,
13
13
  };
14
14
 
15
- export { config as contracts };
16
-
17
15
  export const os = implement(config);
18
16
 
19
17
  export type ContractsOutputs = InferContractRouterOutputs<typeof config>;