@c15t/backend 1.2.0-canary.8 → 1.2.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 (167) hide show
  1. package/.turbo/turbo-build.log +53 -52
  2. package/CHANGELOG.md +7 -0
  3. package/dist/__tests__/server.test.d.ts +2 -0
  4. package/dist/__tests__/server.test.d.ts.map +1 -0
  5. package/dist/contracts/index.d.ts +1 -1
  6. package/dist/contracts/index.d.ts.map +1 -1
  7. package/dist/contracts.cjs +708 -0
  8. package/dist/contracts.js +661 -0
  9. package/dist/core.cjs +98 -47
  10. package/dist/core.d.ts.map +1 -1
  11. package/dist/core.js +98 -47
  12. package/dist/middleware/openapi/config.d.ts +1 -1
  13. package/dist/middleware/openapi/config.d.ts.map +1 -1
  14. package/dist/pkgs/data-model/index.cjs +57 -39
  15. package/dist/pkgs/data-model/index.js +57 -39
  16. package/dist/pkgs/data-model/schema/index.cjs +57 -39
  17. package/dist/pkgs/data-model/schema/index.js +57 -39
  18. package/dist/router.cjs +3 -1
  19. package/dist/router.js +3 -1
  20. package/dist/schema/consent-policy/registry.d.ts.map +1 -1
  21. package/dist/schema/create-registry.d.ts.map +1 -1
  22. package/dist/schema/index.cjs +57 -39
  23. package/dist/schema/index.js +57 -39
  24. package/package.json +9 -4
  25. package/rslib.config.ts +1 -0
  26. package/src/__tests__/server.test.ts +96 -0
  27. package/src/contracts/index.ts +2 -0
  28. package/src/core.ts +34 -1
  29. package/src/middleware/cors/cors.test.ts +0 -1
  30. package/src/middleware/openapi/config.ts +10 -7
  31. package/src/schema/consent-policy/registry.ts +74 -51
  32. package/.turbo/turbo-fmt.log +0 -7
  33. package/.turbo/turbo-test.log +0 -426
  34. package/coverage/coverage-final.json +0 -88
  35. package/coverage/coverage-summary.json +0 -89
  36. package/coverage/html/backend/index.html +0 -116
  37. package/coverage/html/backend/rslib.config.ts.html +0 -415
  38. package/coverage/html/backend/src/contracts/consent/index.html +0 -161
  39. package/coverage/html/backend/src/contracts/consent/index.ts.html +0 -112
  40. package/coverage/html/backend/src/contracts/consent/post.contract.ts.html +0 -550
  41. package/coverage/html/backend/src/contracts/consent/show-banner.contract.ts.html +0 -220
  42. package/coverage/html/backend/src/contracts/consent/verify.contract.ts.html +0 -463
  43. package/coverage/html/backend/src/contracts/index.html +0 -116
  44. package/coverage/html/backend/src/contracts/index.ts.html +0 -139
  45. package/coverage/html/backend/src/contracts/meta/index.html +0 -131
  46. package/coverage/html/backend/src/contracts/meta/index.ts.html +0 -100
  47. package/coverage/html/backend/src/contracts/meta/status.contract.ts.html +0 -196
  48. package/coverage/html/backend/src/contracts/shared/index.html +0 -116
  49. package/coverage/html/backend/src/contracts/shared/jurisdiction.schema.ts.html +0 -175
  50. package/coverage/html/backend/src/core.ts.html +0 -1342
  51. package/coverage/html/backend/src/handlers/consent/index.html +0 -161
  52. package/coverage/html/backend/src/handlers/consent/index.ts.html +0 -112
  53. package/coverage/html/backend/src/handlers/consent/post.handler.ts.html +0 -904
  54. package/coverage/html/backend/src/handlers/consent/show-banner.handler.ts.html +0 -532
  55. package/coverage/html/backend/src/handlers/consent/verify.handler.ts.html +0 -1000
  56. package/coverage/html/backend/src/handlers/meta/index.html +0 -131
  57. package/coverage/html/backend/src/handlers/meta/index.ts.html +0 -100
  58. package/coverage/html/backend/src/handlers/meta/status.handler.ts.html +0 -226
  59. package/coverage/html/backend/src/index.html +0 -161
  60. package/coverage/html/backend/src/init.ts.html +0 -1018
  61. package/coverage/html/backend/src/middleware/cors/cors.ts.html +0 -661
  62. package/coverage/html/backend/src/middleware/cors/index.html +0 -146
  63. package/coverage/html/backend/src/middleware/cors/is-origin-trusted.ts.html +0 -463
  64. package/coverage/html/backend/src/middleware/cors/process-cors.ts.html +0 -358
  65. package/coverage/html/backend/src/middleware/openapi/config.ts.html +0 -160
  66. package/coverage/html/backend/src/middleware/openapi/handlers.ts.html +0 -481
  67. package/coverage/html/backend/src/middleware/openapi/index.html +0 -131
  68. package/coverage/html/backend/src/pkgs/api-router/hooks/index.html +0 -116
  69. package/coverage/html/backend/src/pkgs/api-router/hooks/processor.ts.html +0 -544
  70. package/coverage/html/backend/src/pkgs/api-router/index.html +0 -116
  71. package/coverage/html/backend/src/pkgs/api-router/telemetry.ts.html +0 -334
  72. package/coverage/html/backend/src/pkgs/api-router/utils/index.html +0 -116
  73. package/coverage/html/backend/src/pkgs/api-router/utils/ip.ts.html +0 -361
  74. package/coverage/html/backend/src/pkgs/data-model/fields/field-factory.ts.html +0 -709
  75. package/coverage/html/backend/src/pkgs/data-model/fields/id-generator.ts.html +0 -256
  76. package/coverage/html/backend/src/pkgs/data-model/fields/index.html +0 -161
  77. package/coverage/html/backend/src/pkgs/data-model/fields/superjson-utils.ts.html +0 -136
  78. package/coverage/html/backend/src/pkgs/data-model/fields/zod-fields.ts.html +0 -496
  79. package/coverage/html/backend/src/pkgs/data-model/hooks/create-hooks.ts.html +0 -349
  80. package/coverage/html/backend/src/pkgs/data-model/hooks/index.html +0 -176
  81. package/coverage/html/backend/src/pkgs/data-model/hooks/update-hooks.ts.html +0 -358
  82. package/coverage/html/backend/src/pkgs/data-model/hooks/update-many-hooks.ts.html +0 -613
  83. package/coverage/html/backend/src/pkgs/data-model/hooks/utils.ts.html +0 -538
  84. package/coverage/html/backend/src/pkgs/data-model/hooks/with-hooks-factory.ts.html +0 -289
  85. package/coverage/html/backend/src/pkgs/db-adapters/adapter-factory.ts.html +0 -289
  86. package/coverage/html/backend/src/pkgs/db-adapters/adapters/drizzle-adapter/drizzle-adapter.ts.html +0 -2203
  87. package/coverage/html/backend/src/pkgs/db-adapters/adapters/drizzle-adapter/index.html +0 -116
  88. package/coverage/html/backend/src/pkgs/db-adapters/adapters/index.html +0 -116
  89. package/coverage/html/backend/src/pkgs/db-adapters/adapters/kysely-adapter/dialect.ts.html +0 -670
  90. package/coverage/html/backend/src/pkgs/db-adapters/adapters/kysely-adapter/index.html +0 -131
  91. package/coverage/html/backend/src/pkgs/db-adapters/adapters/kysely-adapter/kysely-adapter.ts.html +0 -3634
  92. package/coverage/html/backend/src/pkgs/db-adapters/adapters/kysely-adapter/tests/index.html +0 -116
  93. package/coverage/html/backend/src/pkgs/db-adapters/adapters/kysely-adapter/tests/test-utils.ts.html +0 -1417
  94. package/coverage/html/backend/src/pkgs/db-adapters/adapters/memory-adapter/index.html +0 -116
  95. package/coverage/html/backend/src/pkgs/db-adapters/adapters/memory-adapter/memory-adapter.ts.html +0 -2071
  96. package/coverage/html/backend/src/pkgs/db-adapters/adapters/prisma-adapter/index.html +0 -116
  97. package/coverage/html/backend/src/pkgs/db-adapters/adapters/prisma-adapter/prisma-adapter.ts.html +0 -1834
  98. package/coverage/html/backend/src/pkgs/db-adapters/adapters/test.ts.html +0 -316
  99. package/coverage/html/backend/src/pkgs/db-adapters/index.html +0 -131
  100. package/coverage/html/backend/src/pkgs/db-adapters/utils.ts.html +0 -238
  101. package/coverage/html/backend/src/pkgs/migrations/get-migration.ts.html +0 -343
  102. package/coverage/html/backend/src/pkgs/migrations/get-schema/get-schema.ts.html +0 -217
  103. package/coverage/html/backend/src/pkgs/migrations/get-schema/index.html +0 -146
  104. package/coverage/html/backend/src/pkgs/migrations/get-schema/process-fields.ts.html +0 -280
  105. package/coverage/html/backend/src/pkgs/migrations/get-schema/process-tables.ts.html +0 -289
  106. package/coverage/html/backend/src/pkgs/migrations/index.html +0 -176
  107. package/coverage/html/backend/src/pkgs/migrations/migration-builders.ts.html +0 -595
  108. package/coverage/html/backend/src/pkgs/migrations/migration-execution.ts.html +0 -301
  109. package/coverage/html/backend/src/pkgs/migrations/schema-comparison.ts.html +0 -694
  110. package/coverage/html/backend/src/pkgs/migrations/type-mapping.ts.html +0 -817
  111. package/coverage/html/backend/src/pkgs/results/core/error-class.ts.html +0 -976
  112. package/coverage/html/backend/src/pkgs/results/core/error-codes.ts.html +0 -703
  113. package/coverage/html/backend/src/pkgs/results/core/index.html +0 -146
  114. package/coverage/html/backend/src/pkgs/results/core/tracing.ts.html +0 -280
  115. package/coverage/html/backend/src/pkgs/results/create-telemetry-options.ts.html +0 -271
  116. package/coverage/html/backend/src/pkgs/results/index.html +0 -131
  117. package/coverage/html/backend/src/pkgs/results/orpc-error-handler.ts.html +0 -496
  118. package/coverage/html/backend/src/pkgs/results/results/index.html +0 -131
  119. package/coverage/html/backend/src/pkgs/results/results/recovery-utils.ts.html +0 -628
  120. package/coverage/html/backend/src/pkgs/results/results/result-helpers.ts.html +0 -1234
  121. package/coverage/html/backend/src/pkgs/utils/env.ts.html +0 -337
  122. package/coverage/html/backend/src/pkgs/utils/index.html +0 -146
  123. package/coverage/html/backend/src/pkgs/utils/logger.ts.html +0 -199
  124. package/coverage/html/backend/src/pkgs/utils/url.ts.html +0 -400
  125. package/coverage/html/backend/src/router.ts.html +0 -109
  126. package/coverage/html/backend/src/schema/audit-log/index.html +0 -146
  127. package/coverage/html/backend/src/schema/audit-log/registry.ts.html +0 -436
  128. package/coverage/html/backend/src/schema/audit-log/schema.ts.html +0 -223
  129. package/coverage/html/backend/src/schema/audit-log/table.ts.html +0 -640
  130. package/coverage/html/backend/src/schema/consent/index.html +0 -146
  131. package/coverage/html/backend/src/schema/consent/registry.ts.html +0 -616
  132. package/coverage/html/backend/src/schema/consent/schema.ts.html +0 -238
  133. package/coverage/html/backend/src/schema/consent/table.ts.html +0 -748
  134. package/coverage/html/backend/src/schema/consent-policy/index.html +0 -146
  135. package/coverage/html/backend/src/schema/consent-policy/registry.ts.html +0 -1063
  136. package/coverage/html/backend/src/schema/consent-policy/schema.ts.html +0 -265
  137. package/coverage/html/backend/src/schema/consent-policy/table.ts.html +0 -535
  138. package/coverage/html/backend/src/schema/consent-purpose/index.html +0 -146
  139. package/coverage/html/backend/src/schema/consent-purpose/registry.ts.html +0 -589
  140. package/coverage/html/backend/src/schema/consent-purpose/schema.ts.html +0 -259
  141. package/coverage/html/backend/src/schema/consent-purpose/table.ts.html +0 -547
  142. package/coverage/html/backend/src/schema/consent-record/index.html +0 -131
  143. package/coverage/html/backend/src/schema/consent-record/schema.ts.html +0 -211
  144. package/coverage/html/backend/src/schema/consent-record/table.ts.html +0 -457
  145. package/coverage/html/backend/src/schema/create-registry.ts.html +0 -148
  146. package/coverage/html/backend/src/schema/definition.ts.html +0 -685
  147. package/coverage/html/backend/src/schema/domain/index.html +0 -146
  148. package/coverage/html/backend/src/schema/domain/registry.ts.html +0 -973
  149. package/coverage/html/backend/src/schema/domain/schema.ts.html +0 -214
  150. package/coverage/html/backend/src/schema/domain/table.ts.html +0 -496
  151. package/coverage/html/backend/src/schema/index.html +0 -146
  152. package/coverage/html/backend/src/schema/schemas.ts.html +0 -166
  153. package/coverage/html/backend/src/schema/subject/index.html +0 -146
  154. package/coverage/html/backend/src/schema/subject/registry.ts.html +0 -973
  155. package/coverage/html/backend/src/schema/subject/schema.ts.html +0 -208
  156. package/coverage/html/backend/src/schema/subject/table.ts.html +0 -499
  157. package/coverage/html/backend/src/server.ts.html +0 -463
  158. package/coverage/html/backend/src/testing/contract-testing.ts.html +0 -1396
  159. package/coverage/html/backend/src/testing/index.html +0 -116
  160. package/coverage/html/base.css +0 -224
  161. package/coverage/html/block-navigation.js +0 -87
  162. package/coverage/html/favicon.png +0 -0
  163. package/coverage/html/index.html +0 -656
  164. package/coverage/html/prettify.css +0 -1
  165. package/coverage/html/prettify.js +0 -2
  166. package/coverage/html/sort-arrow-sprite.png +0 -0
  167. package/coverage/html/sorter.js +0 -196
@@ -0,0 +1,661 @@
1
+ import * as __WEBPACK_EXTERNAL_MODULE__orpc_server_0dae8408__ from "@orpc/server";
2
+ import * as __WEBPACK_EXTERNAL_MODULE__orpc_contract_5a058524__ from "@orpc/contract";
3
+ import * as __WEBPACK_EXTERNAL_MODULE_zod__ from "zod";
4
+ import * as __WEBPACK_EXTERNAL_MODULE_base_x_aeb88370__ from "base-x";
5
+ import "neverthrow";
6
+ import * as __WEBPACK_EXTERNAL_MODULE__opentelemetry_api_87359e78__ from "@opentelemetry/api";
7
+ import "@doubletie/logger";
8
+ (0, __WEBPACK_EXTERNAL_MODULE_base_x_aeb88370__["default"])('123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz');
9
+ const fieldConfigSchema = __WEBPACK_EXTERNAL_MODULE_zod__.z.object({
10
+ required: __WEBPACK_EXTERNAL_MODULE_zod__.z.boolean().default(true),
11
+ returned: __WEBPACK_EXTERNAL_MODULE_zod__.z.boolean().default(true),
12
+ input: __WEBPACK_EXTERNAL_MODULE_zod__.z.boolean().default(true),
13
+ defaultValue: __WEBPACK_EXTERNAL_MODULE_zod__.z.union([
14
+ __WEBPACK_EXTERNAL_MODULE_zod__.z.any(),
15
+ __WEBPACK_EXTERNAL_MODULE_zod__.z["function"]().returns(__WEBPACK_EXTERNAL_MODULE_zod__.z.any())
16
+ ]).optional(),
17
+ transform: __WEBPACK_EXTERNAL_MODULE_zod__.z.object({
18
+ input: __WEBPACK_EXTERNAL_MODULE_zod__.z["function"]().args(__WEBPACK_EXTERNAL_MODULE_zod__.z.any()).returns(__WEBPACK_EXTERNAL_MODULE_zod__.z.union([
19
+ __WEBPACK_EXTERNAL_MODULE_zod__.z.any(),
20
+ __WEBPACK_EXTERNAL_MODULE_zod__.z.promise(__WEBPACK_EXTERNAL_MODULE_zod__.z.any())
21
+ ])).optional(),
22
+ output: __WEBPACK_EXTERNAL_MODULE_zod__.z["function"]().args(__WEBPACK_EXTERNAL_MODULE_zod__.z.any()).returns(__WEBPACK_EXTERNAL_MODULE_zod__.z.union([
23
+ __WEBPACK_EXTERNAL_MODULE_zod__.z.any(),
24
+ __WEBPACK_EXTERNAL_MODULE_zod__.z.promise(__WEBPACK_EXTERNAL_MODULE_zod__.z.any())
25
+ ])).optional()
26
+ }).optional(),
27
+ validator: __WEBPACK_EXTERNAL_MODULE_zod__.z["function"]().args(__WEBPACK_EXTERNAL_MODULE_zod__.z.any()).returns(__WEBPACK_EXTERNAL_MODULE_zod__.z.union([
28
+ __WEBPACK_EXTERNAL_MODULE_zod__.z.string(),
29
+ __WEBPACK_EXTERNAL_MODULE_zod__.z["null"]()
30
+ ])).optional(),
31
+ unique: __WEBPACK_EXTERNAL_MODULE_zod__.z.boolean().optional(),
32
+ indexed: __WEBPACK_EXTERNAL_MODULE_zod__.z.boolean().optional(),
33
+ sortable: __WEBPACK_EXTERNAL_MODULE_zod__.z.boolean().default(true),
34
+ fieldName: __WEBPACK_EXTERNAL_MODULE_zod__.z.string().optional(),
35
+ bigint: __WEBPACK_EXTERNAL_MODULE_zod__.z.boolean().default(false)
36
+ });
37
+ const stringFieldSchema = fieldConfigSchema.extend({
38
+ type: __WEBPACK_EXTERNAL_MODULE_zod__.z.literal('string'),
39
+ minLength: __WEBPACK_EXTERNAL_MODULE_zod__.z.number().optional(),
40
+ maxLength: __WEBPACK_EXTERNAL_MODULE_zod__.z.number().optional(),
41
+ pattern: __WEBPACK_EXTERNAL_MODULE_zod__.z.string().optional()
42
+ });
43
+ const numberFieldSchema = fieldConfigSchema.extend({
44
+ type: __WEBPACK_EXTERNAL_MODULE_zod__.z.literal('number'),
45
+ min: __WEBPACK_EXTERNAL_MODULE_zod__.z.number().optional(),
46
+ max: __WEBPACK_EXTERNAL_MODULE_zod__.z.number().optional()
47
+ });
48
+ const booleanFieldSchema = fieldConfigSchema.extend({
49
+ type: __WEBPACK_EXTERNAL_MODULE_zod__.z.literal('boolean')
50
+ });
51
+ const dateFieldSchema = fieldConfigSchema.extend({
52
+ type: __WEBPACK_EXTERNAL_MODULE_zod__.z.literal('date'),
53
+ minDate: __WEBPACK_EXTERNAL_MODULE_zod__.z.date().optional(),
54
+ maxDate: __WEBPACK_EXTERNAL_MODULE_zod__.z.date().optional(),
55
+ dateOnly: __WEBPACK_EXTERNAL_MODULE_zod__.z.boolean().default(false),
56
+ format: __WEBPACK_EXTERNAL_MODULE_zod__.z.record(__WEBPACK_EXTERNAL_MODULE_zod__.z.unknown()).optional()
57
+ });
58
+ const timezoneFieldSchema = fieldConfigSchema.extend({
59
+ type: __WEBPACK_EXTERNAL_MODULE_zod__.z.literal('timezone'),
60
+ validateTimezone: __WEBPACK_EXTERNAL_MODULE_zod__.z.boolean().default(true),
61
+ suggestedValues: __WEBPACK_EXTERNAL_MODULE_zod__.z.array(__WEBPACK_EXTERNAL_MODULE_zod__.z.string()).optional(),
62
+ restrictToSuggestedValues: __WEBPACK_EXTERNAL_MODULE_zod__.z.boolean().default(false)
63
+ });
64
+ const jsonFieldSchema = fieldConfigSchema.extend({
65
+ type: __WEBPACK_EXTERNAL_MODULE_zod__.z.literal('json'),
66
+ validateJson: __WEBPACK_EXTERNAL_MODULE_zod__.z.boolean().default(true)
67
+ });
68
+ const stringArrayFieldSchema = fieldConfigSchema.extend({
69
+ type: __WEBPACK_EXTERNAL_MODULE_zod__.z.literal('string[]')
70
+ });
71
+ const numberArrayFieldSchema = fieldConfigSchema.extend({
72
+ type: __WEBPACK_EXTERNAL_MODULE_zod__.z.literal('number[]')
73
+ });
74
+ __WEBPACK_EXTERNAL_MODULE_zod__.z.discriminatedUnion('type', [
75
+ stringFieldSchema,
76
+ numberFieldSchema,
77
+ booleanFieldSchema,
78
+ dateFieldSchema,
79
+ timezoneFieldSchema,
80
+ jsonFieldSchema,
81
+ stringArrayFieldSchema,
82
+ numberArrayFieldSchema
83
+ ]);
84
+ const error_codes_ERROR_CODES = Object.freeze({
85
+ NOT_FOUND: 'Resource not found',
86
+ BAD_REQUEST: 'Bad request',
87
+ CONFLICT: 'Conflict with current state',
88
+ MISSING_REQUIRED_PARAMETER: 'Missing required parameter',
89
+ UNAUTHORIZED: 'Unauthorized',
90
+ FORBIDDEN: 'Forbidden',
91
+ INTERNAL_SERVER_ERROR: 'Internal server error',
92
+ INITIALIZATION_FAILED: 'Initialization failed',
93
+ DATABASE_CONNECTION_ERROR: 'Database connection error',
94
+ DATABASE_QUERY_ERROR: 'Database query error',
95
+ INVALID_CONFIGURATION: 'Invalid configuration',
96
+ REQUEST_HANDLER_ERROR: 'Request handler error',
97
+ INVALID_REQUEST: 'Invalid request',
98
+ UNKNOWN_ERROR: 'Unknown error',
99
+ NETWORK_ERROR: 'Network error',
100
+ PLUGIN_INITIALIZATION_FAILED: 'Plugin initialization failed',
101
+ API_RETRIEVAL_ERROR: 'API retrieval error',
102
+ VALIDATION_ERROR: 'Validation error',
103
+ UNEXPECTED: 'Unexpected error'
104
+ });
105
+ const ERROR_CATEGORIES = Object.freeze({
106
+ VALIDATION: 'validation',
107
+ AUTHORIZATION: 'authorization',
108
+ STORAGE: 'storage',
109
+ NETWORK: 'network',
110
+ PLUGIN: 'plugin',
111
+ CONFIGURATION: 'configuration',
112
+ UNEXPECTED: 'unexpected'
113
+ });
114
+ __WEBPACK_EXTERNAL_MODULE__opentelemetry_api_87359e78__.trace.getTracer('@doubletie/results');
115
+ class error_class_DoubleTieError extends __WEBPACK_EXTERNAL_MODULE__orpc_server_0dae8408__.ORPCError {
116
+ category;
117
+ meta;
118
+ statusCode;
119
+ constructor(message, options = {
120
+ code: error_codes_ERROR_CODES.UNKNOWN_ERROR,
121
+ status: 500,
122
+ category: ERROR_CATEGORIES.UNEXPECTED,
123
+ cause: void 0,
124
+ meta: {}
125
+ }){
126
+ super(options.code ?? error_codes_ERROR_CODES.UNKNOWN_ERROR, {
127
+ message,
128
+ cause: options.cause,
129
+ data: options.meta ?? {}
130
+ });
131
+ this.name = 'DoubleTieError';
132
+ this.category = options.category ?? ERROR_CATEGORIES.UNEXPECTED;
133
+ this.meta = options.meta ?? {};
134
+ this.statusCode = options.status ?? 500;
135
+ tracing_withSpan('create_doubletie_error', async (span)=>{
136
+ span.setAttributes({
137
+ 'error.name': this.constructor.name,
138
+ 'error.message': message,
139
+ 'error.code': this.code,
140
+ 'error.status': this.statusCode,
141
+ 'error.category': this.category,
142
+ 'error.has_cause': !!this.cause,
143
+ 'error.cause_type': this.cause instanceof Error ? this.cause.constructor.name : typeof this.cause,
144
+ 'error.has_meta': !!this.meta
145
+ });
146
+ if (this.cause instanceof Error) span.recordException(this.cause);
147
+ });
148
+ if (Error.captureStackTrace) Error.captureStackTrace(this, this.constructor);
149
+ }
150
+ static isDoubleTieError(error) {
151
+ return error instanceof error_class_DoubleTieError;
152
+ }
153
+ toJSON() {
154
+ const validationErrorMessage = this.meta?.validationErrors ? String(this.meta.validationErrors) : void 0;
155
+ const stackTrace = this.stack ? this.stack.split('\n').map((line)=>line.trim()).filter((line)=>line && !line.includes('Error: ')) : [];
156
+ return {
157
+ code: this.code,
158
+ message: validationErrorMessage || this.message,
159
+ status: this.statusCode,
160
+ defined: true,
161
+ data: {
162
+ category: this.category,
163
+ meta: this.meta,
164
+ ...'production' === process.env.NODE_ENV ? {} : {
165
+ stack: stackTrace
166
+ },
167
+ ...validationErrorMessage && this.message ? {
168
+ originalMessage: this.message
169
+ } : {},
170
+ ...this.cause ? {
171
+ cause: this.cause instanceof Error ? {
172
+ name: this.cause.name,
173
+ message: this.cause.message,
174
+ stack: this.cause.stack ? this.cause.stack.split('\n').map((line)=>line.trim()) : void 0
175
+ } : this.cause
176
+ } : {}
177
+ }
178
+ };
179
+ }
180
+ static fromResponse(response, data) {
181
+ let message = `HTTP error ${response.status}`;
182
+ let errorCode = `HTTP ${response.status}`;
183
+ let errorMeta = {};
184
+ if (data && 'object' == typeof data && null !== data) {
185
+ const errorObj = data;
186
+ if ('string' == typeof errorObj.message) message = errorObj.message;
187
+ if ('string' == typeof errorObj.code) errorCode = errorObj.code;
188
+ if ('object' == typeof errorObj.data && null !== errorObj.data) errorMeta = errorObj.data;
189
+ }
190
+ return new error_class_DoubleTieError(message, {
191
+ code: errorCode,
192
+ status: response.status,
193
+ meta: errorMeta
194
+ });
195
+ }
196
+ withMeta(additionalMeta) {
197
+ return new error_class_DoubleTieError(this.message, {
198
+ code: this.code,
199
+ status: this.statusCode,
200
+ category: this.category,
201
+ cause: this.cause instanceof Error ? this.cause : void 0,
202
+ meta: {
203
+ ...this.meta,
204
+ ...additionalMeta
205
+ }
206
+ });
207
+ }
208
+ static createSubclass(name) {
209
+ const ErrorSubclass = class extends error_class_DoubleTieError {
210
+ constructor(message, options){
211
+ super(message, options);
212
+ Object.defineProperty(this, 'name', {
213
+ value: name
214
+ });
215
+ }
216
+ };
217
+ Object.defineProperty(ErrorSubclass, 'name', {
218
+ value: name
219
+ });
220
+ return ErrorSubclass;
221
+ }
222
+ static formatValidationError(error) {
223
+ if (!error.meta) return error.message;
224
+ let formattedMessage = `${error.message} (${error.code})`;
225
+ if (error.meta.validationErrors) formattedMessage += `\nValidation Errors: ${JSON.stringify(error.meta.validationErrors, null, 2)}`;
226
+ const otherMeta = Object.fromEntries(Object.entries(error.meta).filter(([key])=>'validationErrors' !== key));
227
+ if (Object.keys(otherMeta).length > 0) formattedMessage += `\nAdditional Context: ${JSON.stringify(otherMeta, null, 2)}`;
228
+ return formattedMessage;
229
+ }
230
+ }
231
+ __WEBPACK_EXTERNAL_MODULE_zod__.z.object({
232
+ id: __WEBPACK_EXTERNAL_MODULE_zod__.z.string(),
233
+ entityType: __WEBPACK_EXTERNAL_MODULE_zod__.z.string(),
234
+ entityId: __WEBPACK_EXTERNAL_MODULE_zod__.z.string(),
235
+ actionType: __WEBPACK_EXTERNAL_MODULE_zod__.z.string(),
236
+ subjectId: __WEBPACK_EXTERNAL_MODULE_zod__.z.string().optional(),
237
+ ipAddress: __WEBPACK_EXTERNAL_MODULE_zod__.z.string().optional(),
238
+ userAgent: __WEBPACK_EXTERNAL_MODULE_zod__.z.string().optional(),
239
+ changes: __WEBPACK_EXTERNAL_MODULE_zod__.z.record(__WEBPACK_EXTERNAL_MODULE_zod__.z.unknown()).optional(),
240
+ metadata: __WEBPACK_EXTERNAL_MODULE_zod__.z.record(__WEBPACK_EXTERNAL_MODULE_zod__.z.unknown()).optional(),
241
+ createdAt: __WEBPACK_EXTERNAL_MODULE_zod__.z.date().default(()=>new Date())
242
+ });
243
+ const PolicyTypeSchema = __WEBPACK_EXTERNAL_MODULE_zod__.z["enum"]([
244
+ 'cookie_banner',
245
+ 'privacy_policy',
246
+ 'dpa',
247
+ 'terms_and_conditions',
248
+ 'marketing_communications',
249
+ 'age_verification',
250
+ 'other'
251
+ ]);
252
+ __WEBPACK_EXTERNAL_MODULE_zod__.z.object({
253
+ id: __WEBPACK_EXTERNAL_MODULE_zod__.z.string(),
254
+ version: __WEBPACK_EXTERNAL_MODULE_zod__.z.string(),
255
+ type: PolicyTypeSchema,
256
+ name: __WEBPACK_EXTERNAL_MODULE_zod__.z.string(),
257
+ effectiveDate: __WEBPACK_EXTERNAL_MODULE_zod__.z.date(),
258
+ expirationDate: __WEBPACK_EXTERNAL_MODULE_zod__.z.date().nullable().optional(),
259
+ content: __WEBPACK_EXTERNAL_MODULE_zod__.z.string(),
260
+ contentHash: __WEBPACK_EXTERNAL_MODULE_zod__.z.string(),
261
+ isActive: __WEBPACK_EXTERNAL_MODULE_zod__.z.boolean().default(true),
262
+ createdAt: __WEBPACK_EXTERNAL_MODULE_zod__.z.date().default(()=>new Date()),
263
+ updatedAt: __WEBPACK_EXTERNAL_MODULE_zod__.z.date().default(()=>new Date())
264
+ });
265
+ __WEBPACK_EXTERNAL_MODULE_zod__.z.object({
266
+ id: __WEBPACK_EXTERNAL_MODULE_zod__.z.string(),
267
+ code: __WEBPACK_EXTERNAL_MODULE_zod__.z.string(),
268
+ name: __WEBPACK_EXTERNAL_MODULE_zod__.z.string(),
269
+ description: __WEBPACK_EXTERNAL_MODULE_zod__.z.string(),
270
+ isEssential: __WEBPACK_EXTERNAL_MODULE_zod__.z.boolean().default(false),
271
+ dataCategory: __WEBPACK_EXTERNAL_MODULE_zod__.z.string().optional(),
272
+ legalBasis: __WEBPACK_EXTERNAL_MODULE_zod__.z.string().optional(),
273
+ isActive: __WEBPACK_EXTERNAL_MODULE_zod__.z.boolean().default(true),
274
+ createdAt: __WEBPACK_EXTERNAL_MODULE_zod__.z.date().default(()=>new Date()),
275
+ updatedAt: __WEBPACK_EXTERNAL_MODULE_zod__.z.date().default(()=>new Date())
276
+ });
277
+ __WEBPACK_EXTERNAL_MODULE_zod__.z.object({
278
+ id: __WEBPACK_EXTERNAL_MODULE_zod__.z.string(),
279
+ subjectId: __WEBPACK_EXTERNAL_MODULE_zod__.z.string(),
280
+ consentId: __WEBPACK_EXTERNAL_MODULE_zod__.z.string().optional(),
281
+ actionType: __WEBPACK_EXTERNAL_MODULE_zod__.z.string(),
282
+ details: __WEBPACK_EXTERNAL_MODULE_zod__.z.record(__WEBPACK_EXTERNAL_MODULE_zod__.z.unknown()).optional(),
283
+ createdAt: __WEBPACK_EXTERNAL_MODULE_zod__.z.date().default(()=>new Date()),
284
+ updatedAt: __WEBPACK_EXTERNAL_MODULE_zod__.z.date().default(()=>new Date())
285
+ });
286
+ __WEBPACK_EXTERNAL_MODULE_zod__.z.object({
287
+ id: __WEBPACK_EXTERNAL_MODULE_zod__.z.string(),
288
+ subjectId: __WEBPACK_EXTERNAL_MODULE_zod__.z.string(),
289
+ domainId: __WEBPACK_EXTERNAL_MODULE_zod__.z.string(),
290
+ purposeIds: __WEBPACK_EXTERNAL_MODULE_zod__.z.array(__WEBPACK_EXTERNAL_MODULE_zod__.z.string()),
291
+ metadata: __WEBPACK_EXTERNAL_MODULE_zod__.z.record(__WEBPACK_EXTERNAL_MODULE_zod__.z.unknown()).nullable().optional(),
292
+ policyId: __WEBPACK_EXTERNAL_MODULE_zod__.z.string().optional(),
293
+ ipAddress: __WEBPACK_EXTERNAL_MODULE_zod__.z.string().nullable().optional(),
294
+ userAgent: __WEBPACK_EXTERNAL_MODULE_zod__.z.string().nullable().optional(),
295
+ status: __WEBPACK_EXTERNAL_MODULE_zod__.z["enum"]([
296
+ 'active',
297
+ 'withdrawn',
298
+ 'expired'
299
+ ]).default('active'),
300
+ withdrawalReason: __WEBPACK_EXTERNAL_MODULE_zod__.z.string().nullable().optional(),
301
+ givenAt: __WEBPACK_EXTERNAL_MODULE_zod__.z.date().default(()=>new Date()),
302
+ validUntil: __WEBPACK_EXTERNAL_MODULE_zod__.z.date().nullable().optional(),
303
+ isActive: __WEBPACK_EXTERNAL_MODULE_zod__.z.boolean().default(true)
304
+ });
305
+ __WEBPACK_EXTERNAL_MODULE_zod__.z.object({
306
+ id: __WEBPACK_EXTERNAL_MODULE_zod__.z.string(),
307
+ name: __WEBPACK_EXTERNAL_MODULE_zod__.z.string().min(1),
308
+ description: __WEBPACK_EXTERNAL_MODULE_zod__.z.string().optional(),
309
+ allowedOrigins: __WEBPACK_EXTERNAL_MODULE_zod__.z.array(__WEBPACK_EXTERNAL_MODULE_zod__.z.string()).optional().default([]),
310
+ isVerified: __WEBPACK_EXTERNAL_MODULE_zod__.z.boolean().default(true),
311
+ isActive: __WEBPACK_EXTERNAL_MODULE_zod__.z.boolean().default(true),
312
+ createdAt: __WEBPACK_EXTERNAL_MODULE_zod__.z.date().default(()=>new Date()),
313
+ updatedAt: __WEBPACK_EXTERNAL_MODULE_zod__.z.date().default(()=>new Date())
314
+ });
315
+ __WEBPACK_EXTERNAL_MODULE_zod__.z.object({
316
+ id: __WEBPACK_EXTERNAL_MODULE_zod__.z.string(),
317
+ isIdentified: __WEBPACK_EXTERNAL_MODULE_zod__.z.boolean().default(false),
318
+ externalId: __WEBPACK_EXTERNAL_MODULE_zod__.z.string().nullable().optional(),
319
+ identityProvider: __WEBPACK_EXTERNAL_MODULE_zod__.z.string().optional(),
320
+ lastIpAddress: __WEBPACK_EXTERNAL_MODULE_zod__.z.string().optional(),
321
+ createdAt: __WEBPACK_EXTERNAL_MODULE_zod__.z.date().default(()=>new Date()),
322
+ updatedAt: __WEBPACK_EXTERNAL_MODULE_zod__.z.date().default(()=>new Date())
323
+ });
324
+ const baseConsentSchema = __WEBPACK_EXTERNAL_MODULE_zod__.z.object({
325
+ subjectId: __WEBPACK_EXTERNAL_MODULE_zod__.z.string().optional(),
326
+ externalSubjectId: __WEBPACK_EXTERNAL_MODULE_zod__.z.string().optional(),
327
+ domain: __WEBPACK_EXTERNAL_MODULE_zod__.z.string(),
328
+ type: PolicyTypeSchema,
329
+ metadata: __WEBPACK_EXTERNAL_MODULE_zod__.z.record(__WEBPACK_EXTERNAL_MODULE_zod__.z.unknown()).optional()
330
+ });
331
+ const cookieBannerSchema = baseConsentSchema.extend({
332
+ type: __WEBPACK_EXTERNAL_MODULE_zod__.z.literal('cookie_banner'),
333
+ preferences: __WEBPACK_EXTERNAL_MODULE_zod__.z.record(__WEBPACK_EXTERNAL_MODULE_zod__.z.boolean())
334
+ });
335
+ const policyBasedSchema = baseConsentSchema.extend({
336
+ type: __WEBPACK_EXTERNAL_MODULE_zod__.z["enum"]([
337
+ 'privacy_policy',
338
+ 'dpa',
339
+ 'terms_and_conditions'
340
+ ]),
341
+ policyId: __WEBPACK_EXTERNAL_MODULE_zod__.z.string().optional(),
342
+ preferences: __WEBPACK_EXTERNAL_MODULE_zod__.z.record(__WEBPACK_EXTERNAL_MODULE_zod__.z.boolean()).optional()
343
+ });
344
+ const otherConsentSchema = baseConsentSchema.extend({
345
+ type: __WEBPACK_EXTERNAL_MODULE_zod__.z["enum"]([
346
+ 'marketing_communications',
347
+ 'age_verification',
348
+ 'other'
349
+ ]),
350
+ preferences: __WEBPACK_EXTERNAL_MODULE_zod__.z.record(__WEBPACK_EXTERNAL_MODULE_zod__.z.boolean()).optional()
351
+ });
352
+ const postConsentContract = __WEBPACK_EXTERNAL_MODULE__orpc_contract_5a058524__.oc.route({
353
+ method: 'POST',
354
+ path: '/consent/set',
355
+ description: `Records a user's consent preferences and creates necessary consent records.
356
+ This endpoint handles various types of consent submissions:
357
+
358
+ 1. Cookie Banner Consent:
359
+ - Records granular cookie preferences
360
+ - Supports multiple consent purposes
361
+ - Creates audit trail for compliance
362
+
363
+ 2. Policy-Based Consent:
364
+ - Privacy Policy acceptance
365
+ - Data Processing Agreement (DPA) consent
366
+ - Terms and Conditions acceptance
367
+ - Links consent to specific policy versions
368
+
369
+ 3. Other Consent Types:
370
+ - Marketing communications preferences
371
+ - Age verification consent
372
+ - Custom consent types
373
+
374
+ The endpoint performs the following operations:
375
+ - Creates or retrieves subject records
376
+ - Validates domain and policy information
377
+ - Creates consent records with audit trails
378
+ - Records consent purposes and preferences
379
+ - Generates audit logs for compliance
380
+
381
+ Use this endpoint to record user consent and maintain a compliant consent management system.`,
382
+ tags: [
383
+ 'consent',
384
+ 'cookie-banner'
385
+ ]
386
+ }).errors({
387
+ INPUT_VALIDATION_FAILED: {
388
+ status: 422,
389
+ message: 'Invalid input parameters',
390
+ data: __WEBPACK_EXTERNAL_MODULE_zod__.z.object({
391
+ formErrors: __WEBPACK_EXTERNAL_MODULE_zod__.z.array(__WEBPACK_EXTERNAL_MODULE_zod__.z.string()),
392
+ fieldErrors: __WEBPACK_EXTERNAL_MODULE_zod__.z.record(__WEBPACK_EXTERNAL_MODULE_zod__.z.string(), __WEBPACK_EXTERNAL_MODULE_zod__.z.array(__WEBPACK_EXTERNAL_MODULE_zod__.z.string()))
393
+ })
394
+ },
395
+ SUBJECT_CREATION_FAILED: {
396
+ status: 400,
397
+ message: 'Failed to create or find subject',
398
+ data: __WEBPACK_EXTERNAL_MODULE_zod__.z.object({
399
+ subjectId: __WEBPACK_EXTERNAL_MODULE_zod__.z.string().optional(),
400
+ externalSubjectId: __WEBPACK_EXTERNAL_MODULE_zod__.z.string().optional()
401
+ })
402
+ },
403
+ DOMAIN_CREATION_FAILED: {
404
+ status: 500,
405
+ message: 'Failed to create or find domain',
406
+ data: __WEBPACK_EXTERNAL_MODULE_zod__.z.object({
407
+ domain: __WEBPACK_EXTERNAL_MODULE_zod__.z.string()
408
+ })
409
+ },
410
+ POLICY_NOT_FOUND: {
411
+ status: 404,
412
+ message: 'Policy not found',
413
+ data: __WEBPACK_EXTERNAL_MODULE_zod__.z.object({
414
+ policyId: __WEBPACK_EXTERNAL_MODULE_zod__.z.string(),
415
+ type: __WEBPACK_EXTERNAL_MODULE_zod__.z.string()
416
+ })
417
+ },
418
+ POLICY_INACTIVE: {
419
+ status: 409,
420
+ message: 'Policy is not active',
421
+ data: __WEBPACK_EXTERNAL_MODULE_zod__.z.object({
422
+ policyId: __WEBPACK_EXTERNAL_MODULE_zod__.z.string(),
423
+ type: __WEBPACK_EXTERNAL_MODULE_zod__.z.string()
424
+ })
425
+ },
426
+ POLICY_CREATION_FAILED: {
427
+ status: 500,
428
+ message: 'Failed to create or find policy',
429
+ data: __WEBPACK_EXTERNAL_MODULE_zod__.z.object({
430
+ type: __WEBPACK_EXTERNAL_MODULE_zod__.z.string()
431
+ })
432
+ },
433
+ PURPOSE_CREATION_FAILED: {
434
+ status: 500,
435
+ message: 'Failed to create consent purpose',
436
+ data: __WEBPACK_EXTERNAL_MODULE_zod__.z.object({
437
+ purposeCode: __WEBPACK_EXTERNAL_MODULE_zod__.z.string()
438
+ })
439
+ },
440
+ CONSENT_CREATION_FAILED: {
441
+ status: 500,
442
+ message: 'Failed to create consent record',
443
+ data: __WEBPACK_EXTERNAL_MODULE_zod__.z.object({
444
+ subjectId: __WEBPACK_EXTERNAL_MODULE_zod__.z.string(),
445
+ domain: __WEBPACK_EXTERNAL_MODULE_zod__.z.string()
446
+ })
447
+ }
448
+ }).input(__WEBPACK_EXTERNAL_MODULE_zod__.z.discriminatedUnion('type', [
449
+ cookieBannerSchema,
450
+ policyBasedSchema,
451
+ otherConsentSchema
452
+ ])).output(__WEBPACK_EXTERNAL_MODULE_zod__.z.object({
453
+ id: __WEBPACK_EXTERNAL_MODULE_zod__.z.string(),
454
+ subjectId: __WEBPACK_EXTERNAL_MODULE_zod__.z.string().optional(),
455
+ externalSubjectId: __WEBPACK_EXTERNAL_MODULE_zod__.z.string().optional(),
456
+ domainId: __WEBPACK_EXTERNAL_MODULE_zod__.z.string(),
457
+ domain: __WEBPACK_EXTERNAL_MODULE_zod__.z.string(),
458
+ type: PolicyTypeSchema,
459
+ status: __WEBPACK_EXTERNAL_MODULE_zod__.z.string(),
460
+ recordId: __WEBPACK_EXTERNAL_MODULE_zod__.z.string(),
461
+ metadata: __WEBPACK_EXTERNAL_MODULE_zod__.z.record(__WEBPACK_EXTERNAL_MODULE_zod__.z.unknown()).optional(),
462
+ givenAt: __WEBPACK_EXTERNAL_MODULE_zod__.z.date()
463
+ }));
464
+ const JurisdictionCodeSchema = __WEBPACK_EXTERNAL_MODULE_zod__.z["enum"]([
465
+ 'GDPR',
466
+ 'CH',
467
+ 'BR',
468
+ 'PIPEDA',
469
+ 'AU',
470
+ 'APPI',
471
+ 'PIPA',
472
+ 'NONE'
473
+ ]);
474
+ const JurisdictionInfoSchema = __WEBPACK_EXTERNAL_MODULE_zod__.z.object({
475
+ code: JurisdictionCodeSchema,
476
+ message: __WEBPACK_EXTERNAL_MODULE_zod__.z.string()
477
+ });
478
+ const showConsentBannerContract = __WEBPACK_EXTERNAL_MODULE__orpc_contract_5a058524__.oc.route({
479
+ method: 'GET',
480
+ path: '/show-consent-banner',
481
+ description: `Determines if a user should see a consent banner based on their location and applicable privacy regulations.
482
+ This endpoint performs the following checks:
483
+
484
+ 1. Detects the user's location using various header information:
485
+ - Cloudflare country headers
486
+ - Vercel IP country headers
487
+ - AWS CloudFront headers
488
+ - Custom country code headers
489
+
490
+ 2. Determines the applicable jurisdiction based on the location:
491
+ - GDPR (EU/EEA/UK)
492
+ - Swiss Data Protection Act
493
+ - LGPD (Brazil)
494
+ - PIPEDA (Canada)
495
+ - Australian Privacy Principles
496
+ - APPI (Japan)
497
+ - PIPA (South Korea)
498
+
499
+ 3. Returns detailed information about:
500
+ - Whether to show the consent banner
501
+ - The applicable jurisdiction and its requirements
502
+ - The user's detected location (country and region)
503
+
504
+ Use this endpoint to implement geo-targeted consent banners and ensure compliance with regional privacy regulations.`,
505
+ tags: [
506
+ 'cookie-banner'
507
+ ]
508
+ }).output(__WEBPACK_EXTERNAL_MODULE_zod__.z.object({
509
+ showConsentBanner: __WEBPACK_EXTERNAL_MODULE_zod__.z.boolean(),
510
+ jurisdiction: JurisdictionInfoSchema,
511
+ location: __WEBPACK_EXTERNAL_MODULE_zod__.z.object({
512
+ countryCode: __WEBPACK_EXTERNAL_MODULE_zod__.z.string().nullable(),
513
+ regionCode: __WEBPACK_EXTERNAL_MODULE_zod__.z.string().nullable()
514
+ })
515
+ }));
516
+ const verifyConsentInputSchema = __WEBPACK_EXTERNAL_MODULE_zod__.z.object({
517
+ subjectId: __WEBPACK_EXTERNAL_MODULE_zod__.z.string().optional(),
518
+ externalSubjectId: __WEBPACK_EXTERNAL_MODULE_zod__.z.string().optional(),
519
+ domain: __WEBPACK_EXTERNAL_MODULE_zod__.z.string(),
520
+ type: PolicyTypeSchema,
521
+ policyId: __WEBPACK_EXTERNAL_MODULE_zod__.z.string().optional(),
522
+ preferences: __WEBPACK_EXTERNAL_MODULE_zod__.z.array(__WEBPACK_EXTERNAL_MODULE_zod__.z.string()).optional()
523
+ }).strict();
524
+ const verify_contract_consentSchema = __WEBPACK_EXTERNAL_MODULE_zod__.z.object({
525
+ id: __WEBPACK_EXTERNAL_MODULE_zod__.z.string(),
526
+ purposeIds: __WEBPACK_EXTERNAL_MODULE_zod__.z.array(__WEBPACK_EXTERNAL_MODULE_zod__.z.string())
527
+ }).passthrough();
528
+ const verifyConsentContract = __WEBPACK_EXTERNAL_MODULE__orpc_contract_5a058524__.oc.route({
529
+ method: 'POST',
530
+ path: '/consent/verify',
531
+ description: `Verifies if a user has given valid consent for a specific policy and domain.
532
+ This endpoint performs comprehensive consent verification by:
533
+
534
+ 1. Validating the subject's identity (using subjectId or externalSubjectId)
535
+ 2. Verifying the domain's existence and validity
536
+ 3. Checking if the specified policy exists and is active
537
+ 4. Validating that all required purposes have been consented to
538
+ 5. Ensuring the consent record is current and valid
539
+
540
+ The endpoint supports different types of consent verification:
541
+ - Cookie banner consent verification
542
+ - Privacy policy consent verification
543
+ - Terms and conditions verification
544
+ - Marketing communications consent verification
545
+ - Age verification
546
+ - Custom consent types
547
+
548
+ Use this endpoint to ensure compliance with privacy regulations and to verify user consent before processing personal data.`,
549
+ tags: [
550
+ 'consent'
551
+ ]
552
+ }).errors({
553
+ INPUT_VALIDATION_FAILED: {
554
+ status: 422,
555
+ message: 'Invalid input parameters',
556
+ data: __WEBPACK_EXTERNAL_MODULE_zod__.z.object({
557
+ formErrors: __WEBPACK_EXTERNAL_MODULE_zod__.z.array(__WEBPACK_EXTERNAL_MODULE_zod__.z.string()),
558
+ fieldErrors: __WEBPACK_EXTERNAL_MODULE_zod__.z.record(__WEBPACK_EXTERNAL_MODULE_zod__.z.string(), __WEBPACK_EXTERNAL_MODULE_zod__.z.array(__WEBPACK_EXTERNAL_MODULE_zod__.z.string()).optional())
559
+ })
560
+ },
561
+ SUBJECT_NOT_FOUND: {
562
+ status: 404,
563
+ message: 'Subject not found',
564
+ data: __WEBPACK_EXTERNAL_MODULE_zod__.z.object({
565
+ subjectId: __WEBPACK_EXTERNAL_MODULE_zod__.z.string().optional(),
566
+ externalSubjectId: __WEBPACK_EXTERNAL_MODULE_zod__.z.string().optional()
567
+ })
568
+ },
569
+ DOMAIN_NOT_FOUND: {
570
+ status: 404,
571
+ message: 'Domain not found',
572
+ data: __WEBPACK_EXTERNAL_MODULE_zod__.z.object({
573
+ domain: __WEBPACK_EXTERNAL_MODULE_zod__.z.string()
574
+ })
575
+ },
576
+ POLICY_NOT_FOUND: {
577
+ status: 404,
578
+ message: 'Policy not found or invalid',
579
+ data: __WEBPACK_EXTERNAL_MODULE_zod__.z.object({
580
+ policyId: __WEBPACK_EXTERNAL_MODULE_zod__.z.string(),
581
+ type: __WEBPACK_EXTERNAL_MODULE_zod__.z.string()
582
+ })
583
+ },
584
+ PURPOSES_NOT_FOUND: {
585
+ status: 404,
586
+ message: 'Could not find all specified purposes',
587
+ data: __WEBPACK_EXTERNAL_MODULE_zod__.z.object({
588
+ preferences: __WEBPACK_EXTERNAL_MODULE_zod__.z.array(__WEBPACK_EXTERNAL_MODULE_zod__.z.string()),
589
+ foundPurposes: __WEBPACK_EXTERNAL_MODULE_zod__.z.array(__WEBPACK_EXTERNAL_MODULE_zod__.z.string())
590
+ })
591
+ },
592
+ COOKIE_BANNER_PREFERENCES_REQUIRED: {
593
+ status: 400,
594
+ message: 'Preferences are required for cookie banner consent',
595
+ data: __WEBPACK_EXTERNAL_MODULE_zod__.z.object({
596
+ type: __WEBPACK_EXTERNAL_MODULE_zod__.z.literal('cookie_banner')
597
+ })
598
+ },
599
+ NO_CONSENT_FOUND: {
600
+ status: 404,
601
+ message: 'No consent found for the given policy',
602
+ data: __WEBPACK_EXTERNAL_MODULE_zod__.z.object({
603
+ policyId: __WEBPACK_EXTERNAL_MODULE_zod__.z.string(),
604
+ subjectId: __WEBPACK_EXTERNAL_MODULE_zod__.z.string(),
605
+ domainId: __WEBPACK_EXTERNAL_MODULE_zod__.z.string()
606
+ })
607
+ }
608
+ }).input(verifyConsentInputSchema).output(__WEBPACK_EXTERNAL_MODULE_zod__.z.object({
609
+ isValid: __WEBPACK_EXTERNAL_MODULE_zod__.z.boolean(),
610
+ reasons: __WEBPACK_EXTERNAL_MODULE_zod__.z.array(__WEBPACK_EXTERNAL_MODULE_zod__.z.string()).optional(),
611
+ consent: verify_contract_consentSchema.optional()
612
+ }));
613
+ const consentContracts = {
614
+ post: postConsentContract,
615
+ showBanner: showConsentBannerContract,
616
+ verify: verifyConsentContract
617
+ };
618
+ const statusContract = __WEBPACK_EXTERNAL_MODULE__orpc_contract_5a058524__.oc.route({
619
+ method: 'GET',
620
+ path: '/status',
621
+ description: `Returns the current operational status and health metrics of the service.
622
+ This endpoint provides real-time information about:
623
+ - Overall service status (ok/error)
624
+ - Current API version
625
+ - Server timestamp
626
+ - Storage system status and availability
627
+ - Client information (IP, User Agent, Region)
628
+
629
+ Use this endpoint for health checks, monitoring, and service status verification.`,
630
+ tags: [
631
+ 'meta'
632
+ ]
633
+ }).output(__WEBPACK_EXTERNAL_MODULE_zod__.z.object({
634
+ status: __WEBPACK_EXTERNAL_MODULE_zod__.z["enum"]([
635
+ 'ok',
636
+ 'error'
637
+ ]),
638
+ version: __WEBPACK_EXTERNAL_MODULE_zod__.z.string(),
639
+ timestamp: __WEBPACK_EXTERNAL_MODULE_zod__.z.date(),
640
+ storage: __WEBPACK_EXTERNAL_MODULE_zod__.z.object({
641
+ type: __WEBPACK_EXTERNAL_MODULE_zod__.z.string(),
642
+ available: __WEBPACK_EXTERNAL_MODULE_zod__.z.boolean()
643
+ }),
644
+ client: __WEBPACK_EXTERNAL_MODULE_zod__.z.object({
645
+ ip: __WEBPACK_EXTERNAL_MODULE_zod__.z.string().nullable(),
646
+ userAgent: __WEBPACK_EXTERNAL_MODULE_zod__.z.string().nullable(),
647
+ region: __WEBPACK_EXTERNAL_MODULE_zod__.z.object({
648
+ countryCode: __WEBPACK_EXTERNAL_MODULE_zod__.z.string().nullable(),
649
+ regionCode: __WEBPACK_EXTERNAL_MODULE_zod__.z.string().nullable()
650
+ })
651
+ })
652
+ }));
653
+ const metaContracts = {
654
+ status: statusContract
655
+ };
656
+ const contracts_config = {
657
+ consent: consentContracts,
658
+ meta: metaContracts
659
+ };
660
+ const os = (0, __WEBPACK_EXTERNAL_MODULE__orpc_server_0dae8408__.implement)(contracts_config);
661
+ export { contracts_config as contracts, os };