@c15t/backend 0.0.1-rc.23 → 1.0.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 (145) hide show
  1. package/.turbo/turbo-build.log +14 -14
  2. package/dist/index.cjs +1 -1
  3. package/dist/index.js +1 -1
  4. package/dist/integrations/cloudflare.cjs +5 -1
  5. package/dist/integrations/cloudflare.d.ts.map +1 -1
  6. package/dist/integrations/cloudflare.js +5 -1
  7. package/dist/integrations/next.cjs +5 -1
  8. package/dist/integrations/next.d.ts.map +1 -1
  9. package/dist/integrations/next.js +5 -1
  10. package/dist/integrations/node.cjs +5 -1
  11. package/dist/integrations/node.d.ts.map +1 -1
  12. package/dist/integrations/node.js +5 -1
  13. package/dist/pkgs/logger/types.d.ts +1 -1
  14. package/dist/pkgs/logger/types.d.ts.map +1 -1
  15. package/package.json +2 -3
  16. package/src/integrations/cloudflare.ts +1 -0
  17. package/src/integrations/next.ts +2 -0
  18. package/src/integrations/node.ts +1 -0
  19. package/src/pkgs/logger/types.ts +1 -5
  20. package/.turbo/turbo-fmt.log +0 -7
  21. package/.turbo/turbo-test.log +0 -551
  22. package/coverage/coverage-final.json +0 -83
  23. package/coverage/coverage-summary.json +0 -84
  24. package/coverage/html/backend/index.html +0 -116
  25. package/coverage/html/backend/rslib.config.ts.html +0 -424
  26. package/coverage/html/backend/src/core.ts.html +0 -796
  27. package/coverage/html/backend/src/index.html +0 -131
  28. package/coverage/html/backend/src/init.ts.html +0 -1072
  29. package/coverage/html/backend/src/integrations/cloudflare.ts.html +0 -889
  30. package/coverage/html/backend/src/integrations/index.html +0 -146
  31. package/coverage/html/backend/src/integrations/next.ts.html +0 -691
  32. package/coverage/html/backend/src/integrations/node.ts.html +0 -505
  33. package/coverage/html/backend/src/pkgs/api-router/hooks/index.html +0 -116
  34. package/coverage/html/backend/src/pkgs/api-router/hooks/processor.ts.html +0 -538
  35. package/coverage/html/backend/src/pkgs/api-router/index.html +0 -131
  36. package/coverage/html/backend/src/pkgs/api-router/index.ts.html +0 -529
  37. package/coverage/html/backend/src/pkgs/api-router/telemetry.ts.html +0 -334
  38. package/coverage/html/backend/src/pkgs/api-router/utils/cors.ts.html +0 -304
  39. package/coverage/html/backend/src/pkgs/api-router/utils/define-route.ts.html +0 -1315
  40. package/coverage/html/backend/src/pkgs/api-router/utils/index.html +0 -146
  41. package/coverage/html/backend/src/pkgs/api-router/utils/ip.ts.html +0 -361
  42. package/coverage/html/backend/src/pkgs/data-model/fields/field-factory.ts.html +0 -709
  43. package/coverage/html/backend/src/pkgs/data-model/fields/id-generator.ts.html +0 -256
  44. package/coverage/html/backend/src/pkgs/data-model/fields/index.html +0 -161
  45. package/coverage/html/backend/src/pkgs/data-model/fields/superjson-utils.ts.html +0 -136
  46. package/coverage/html/backend/src/pkgs/data-model/fields/zod-fields.ts.html +0 -496
  47. package/coverage/html/backend/src/pkgs/data-model/hooks/create-hooks.ts.html +0 -349
  48. package/coverage/html/backend/src/pkgs/data-model/hooks/index.html +0 -176
  49. package/coverage/html/backend/src/pkgs/data-model/hooks/update-hooks.ts.html +0 -358
  50. package/coverage/html/backend/src/pkgs/data-model/hooks/update-many-hooks.ts.html +0 -613
  51. package/coverage/html/backend/src/pkgs/data-model/hooks/utils.ts.html +0 -538
  52. package/coverage/html/backend/src/pkgs/data-model/hooks/with-hooks-factory.ts.html +0 -289
  53. package/coverage/html/backend/src/pkgs/db-adapters/adapter-factory.ts.html +0 -277
  54. package/coverage/html/backend/src/pkgs/db-adapters/adapters/drizzle-adapter/drizzle-adapter.ts.html +0 -2212
  55. package/coverage/html/backend/src/pkgs/db-adapters/adapters/drizzle-adapter/index.html +0 -116
  56. package/coverage/html/backend/src/pkgs/db-adapters/adapters/index.html +0 -116
  57. package/coverage/html/backend/src/pkgs/db-adapters/adapters/kysely-adapter/dialect.ts.html +0 -676
  58. package/coverage/html/backend/src/pkgs/db-adapters/adapters/kysely-adapter/index.html +0 -131
  59. package/coverage/html/backend/src/pkgs/db-adapters/adapters/kysely-adapter/kysely-adapter.ts.html +0 -3637
  60. package/coverage/html/backend/src/pkgs/db-adapters/adapters/kysely-adapter/tests/index.html +0 -116
  61. package/coverage/html/backend/src/pkgs/db-adapters/adapters/kysely-adapter/tests/test-utils.ts.html +0 -1417
  62. package/coverage/html/backend/src/pkgs/db-adapters/adapters/memory-adapter/index.html +0 -116
  63. package/coverage/html/backend/src/pkgs/db-adapters/adapters/memory-adapter/memory-adapter.ts.html +0 -2074
  64. package/coverage/html/backend/src/pkgs/db-adapters/adapters/prisma-adapter/index.html +0 -116
  65. package/coverage/html/backend/src/pkgs/db-adapters/adapters/prisma-adapter/prisma-adapter.ts.html +0 -1837
  66. package/coverage/html/backend/src/pkgs/db-adapters/adapters/test.ts.html +0 -316
  67. package/coverage/html/backend/src/pkgs/db-adapters/index.html +0 -131
  68. package/coverage/html/backend/src/pkgs/db-adapters/utils.ts.html +0 -238
  69. package/coverage/html/backend/src/pkgs/logger/console-formatter.ts.html +0 -310
  70. package/coverage/html/backend/src/pkgs/logger/index.html +0 -176
  71. package/coverage/html/backend/src/pkgs/logger/log-levels.ts.html +0 -223
  72. package/coverage/html/backend/src/pkgs/logger/logger-factory.ts.html +0 -448
  73. package/coverage/html/backend/src/pkgs/logger/result-logging.ts.html +0 -487
  74. package/coverage/html/backend/src/pkgs/logger/telemetry.ts.html +0 -373
  75. package/coverage/html/backend/src/pkgs/migrations/get-migration.ts.html +0 -343
  76. package/coverage/html/backend/src/pkgs/migrations/get-schema/get-schema.ts.html +0 -217
  77. package/coverage/html/backend/src/pkgs/migrations/get-schema/index.html +0 -146
  78. package/coverage/html/backend/src/pkgs/migrations/get-schema/process-fields.ts.html +0 -280
  79. package/coverage/html/backend/src/pkgs/migrations/get-schema/process-tables.ts.html +0 -289
  80. package/coverage/html/backend/src/pkgs/migrations/index.html +0 -176
  81. package/coverage/html/backend/src/pkgs/migrations/migration-builders.ts.html +0 -595
  82. package/coverage/html/backend/src/pkgs/migrations/migration-execution.ts.html +0 -301
  83. package/coverage/html/backend/src/pkgs/migrations/schema-comparison.ts.html +0 -691
  84. package/coverage/html/backend/src/pkgs/migrations/type-mapping.ts.html +0 -817
  85. package/coverage/html/backend/src/pkgs/results/core/error-class.ts.html +0 -1012
  86. package/coverage/html/backend/src/pkgs/results/core/error-codes.ts.html +0 -703
  87. package/coverage/html/backend/src/pkgs/results/core/index.html +0 -146
  88. package/coverage/html/backend/src/pkgs/results/core/tracing.ts.html +0 -280
  89. package/coverage/html/backend/src/pkgs/results/create-telemetry-options.ts.html +0 -271
  90. package/coverage/html/backend/src/pkgs/results/h3-integration.ts.html +0 -511
  91. package/coverage/html/backend/src/pkgs/results/index.html +0 -131
  92. package/coverage/html/backend/src/pkgs/results/pipeline/index.html +0 -131
  93. package/coverage/html/backend/src/pkgs/results/pipeline/retrieval-pipeline.ts.html +0 -649
  94. package/coverage/html/backend/src/pkgs/results/pipeline/validation-pipeline.ts.html +0 -577
  95. package/coverage/html/backend/src/pkgs/results/results/index.html +0 -131
  96. package/coverage/html/backend/src/pkgs/results/results/recovery-utils.ts.html +0 -628
  97. package/coverage/html/backend/src/pkgs/results/results/result-helpers.ts.html +0 -1234
  98. package/coverage/html/backend/src/pkgs/utils/env.ts.html +0 -337
  99. package/coverage/html/backend/src/pkgs/utils/index.html +0 -131
  100. package/coverage/html/backend/src/pkgs/utils/url.ts.html +0 -400
  101. package/coverage/html/backend/src/routes/index.html +0 -176
  102. package/coverage/html/backend/src/routes/index.ts.html +0 -121
  103. package/coverage/html/backend/src/routes/set-consent.ts.html +0 -832
  104. package/coverage/html/backend/src/routes/show-consent-banner.ts.html +0 -478
  105. package/coverage/html/backend/src/routes/status.ts.html +0 -268
  106. package/coverage/html/backend/src/routes/verify-consent.ts.html +0 -703
  107. package/coverage/html/backend/src/schema/audit-log/index.html +0 -146
  108. package/coverage/html/backend/src/schema/audit-log/registry.ts.html +0 -436
  109. package/coverage/html/backend/src/schema/audit-log/schema.ts.html +0 -223
  110. package/coverage/html/backend/src/schema/audit-log/table.ts.html +0 -640
  111. package/coverage/html/backend/src/schema/consent/index.html +0 -146
  112. package/coverage/html/backend/src/schema/consent/registry.ts.html +0 -616
  113. package/coverage/html/backend/src/schema/consent/schema.ts.html +0 -238
  114. package/coverage/html/backend/src/schema/consent/table.ts.html +0 -748
  115. package/coverage/html/backend/src/schema/consent-policy/index.html +0 -146
  116. package/coverage/html/backend/src/schema/consent-policy/registry.ts.html +0 -1063
  117. package/coverage/html/backend/src/schema/consent-policy/schema.ts.html +0 -265
  118. package/coverage/html/backend/src/schema/consent-policy/table.ts.html +0 -535
  119. package/coverage/html/backend/src/schema/consent-purpose/index.html +0 -146
  120. package/coverage/html/backend/src/schema/consent-purpose/registry.ts.html +0 -589
  121. package/coverage/html/backend/src/schema/consent-purpose/schema.ts.html +0 -259
  122. package/coverage/html/backend/src/schema/consent-purpose/table.ts.html +0 -547
  123. package/coverage/html/backend/src/schema/consent-record/index.html +0 -131
  124. package/coverage/html/backend/src/schema/consent-record/schema.ts.html +0 -211
  125. package/coverage/html/backend/src/schema/consent-record/table.ts.html +0 -457
  126. package/coverage/html/backend/src/schema/create-registry.ts.html +0 -148
  127. package/coverage/html/backend/src/schema/definition.ts.html +0 -685
  128. package/coverage/html/backend/src/schema/domain/index.html +0 -146
  129. package/coverage/html/backend/src/schema/domain/registry.ts.html +0 -973
  130. package/coverage/html/backend/src/schema/domain/schema.ts.html +0 -214
  131. package/coverage/html/backend/src/schema/domain/table.ts.html +0 -496
  132. package/coverage/html/backend/src/schema/index.html +0 -146
  133. package/coverage/html/backend/src/schema/schemas.ts.html +0 -166
  134. package/coverage/html/backend/src/schema/subject/index.html +0 -146
  135. package/coverage/html/backend/src/schema/subject/registry.ts.html +0 -973
  136. package/coverage/html/backend/src/schema/subject/schema.ts.html +0 -208
  137. package/coverage/html/backend/src/schema/subject/table.ts.html +0 -499
  138. package/coverage/html/base.css +0 -224
  139. package/coverage/html/block-navigation.js +0 -87
  140. package/coverage/html/favicon.png +0 -0
  141. package/coverage/html/index.html +0 -581
  142. package/coverage/html/prettify.css +0 -1
  143. package/coverage/html/prettify.js +0 -2
  144. package/coverage/html/sort-arrow-sprite.png +0 -0
  145. package/coverage/html/sorter.js +0 -196
@@ -1,748 +0,0 @@
1
-
2
- <!doctype html>
3
- <html lang="en">
4
-
5
- <head>
6
- <title>Code coverage report for backend/src/schema/consent/table.ts</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><a href="../../../../index.html">All files</a> / <a href="index.html">backend/src/schema/consent</a> table.ts</h1>
23
- <div class='clearfix'>
24
-
25
- <div class='fl pad1y space-right2'>
26
- <span class="strong">31.25% </span>
27
- <span class="quiet">Statements</span>
28
- <span class='fraction'>5/16</span>
29
- </div>
30
-
31
-
32
- <div class='fl pad1y space-right2'>
33
- <span class="strong">82.6% </span>
34
- <span class="quiet">Branches</span>
35
- <span class='fraction'>38/46</span>
36
- </div>
37
-
38
-
39
- <div class='fl pad1y space-right2'>
40
- <span class="strong">25% </span>
41
- <span class="quiet">Functions</span>
42
- <span class='fraction'>1/4</span>
43
- </div>
44
-
45
-
46
- <div class='fl pad1y space-right2'>
47
- <span class="strong">31.25% </span>
48
- <span class="quiet">Lines</span>
49
- <span class='fraction'>5/16</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
- <pre><table class="coverage">
66
- <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
67
- <a name='L2'></a><a href='#L2'>2</a>
68
- <a name='L3'></a><a href='#L3'>3</a>
69
- <a name='L4'></a><a href='#L4'>4</a>
70
- <a name='L5'></a><a href='#L5'>5</a>
71
- <a name='L6'></a><a href='#L6'>6</a>
72
- <a name='L7'></a><a href='#L7'>7</a>
73
- <a name='L8'></a><a href='#L8'>8</a>
74
- <a name='L9'></a><a href='#L9'>9</a>
75
- <a name='L10'></a><a href='#L10'>10</a>
76
- <a name='L11'></a><a href='#L11'>11</a>
77
- <a name='L12'></a><a href='#L12'>12</a>
78
- <a name='L13'></a><a href='#L13'>13</a>
79
- <a name='L14'></a><a href='#L14'>14</a>
80
- <a name='L15'></a><a href='#L15'>15</a>
81
- <a name='L16'></a><a href='#L16'>16</a>
82
- <a name='L17'></a><a href='#L17'>17</a>
83
- <a name='L18'></a><a href='#L18'>18</a>
84
- <a name='L19'></a><a href='#L19'>19</a>
85
- <a name='L20'></a><a href='#L20'>20</a>
86
- <a name='L21'></a><a href='#L21'>21</a>
87
- <a name='L22'></a><a href='#L22'>22</a>
88
- <a name='L23'></a><a href='#L23'>23</a>
89
- <a name='L24'></a><a href='#L24'>24</a>
90
- <a name='L25'></a><a href='#L25'>25</a>
91
- <a name='L26'></a><a href='#L26'>26</a>
92
- <a name='L27'></a><a href='#L27'>27</a>
93
- <a name='L28'></a><a href='#L28'>28</a>
94
- <a name='L29'></a><a href='#L29'>29</a>
95
- <a name='L30'></a><a href='#L30'>30</a>
96
- <a name='L31'></a><a href='#L31'>31</a>
97
- <a name='L32'></a><a href='#L32'>32</a>
98
- <a name='L33'></a><a href='#L33'>33</a>
99
- <a name='L34'></a><a href='#L34'>34</a>
100
- <a name='L35'></a><a href='#L35'>35</a>
101
- <a name='L36'></a><a href='#L36'>36</a>
102
- <a name='L37'></a><a href='#L37'>37</a>
103
- <a name='L38'></a><a href='#L38'>38</a>
104
- <a name='L39'></a><a href='#L39'>39</a>
105
- <a name='L40'></a><a href='#L40'>40</a>
106
- <a name='L41'></a><a href='#L41'>41</a>
107
- <a name='L42'></a><a href='#L42'>42</a>
108
- <a name='L43'></a><a href='#L43'>43</a>
109
- <a name='L44'></a><a href='#L44'>44</a>
110
- <a name='L45'></a><a href='#L45'>45</a>
111
- <a name='L46'></a><a href='#L46'>46</a>
112
- <a name='L47'></a><a href='#L47'>47</a>
113
- <a name='L48'></a><a href='#L48'>48</a>
114
- <a name='L49'></a><a href='#L49'>49</a>
115
- <a name='L50'></a><a href='#L50'>50</a>
116
- <a name='L51'></a><a href='#L51'>51</a>
117
- <a name='L52'></a><a href='#L52'>52</a>
118
- <a name='L53'></a><a href='#L53'>53</a>
119
- <a name='L54'></a><a href='#L54'>54</a>
120
- <a name='L55'></a><a href='#L55'>55</a>
121
- <a name='L56'></a><a href='#L56'>56</a>
122
- <a name='L57'></a><a href='#L57'>57</a>
123
- <a name='L58'></a><a href='#L58'>58</a>
124
- <a name='L59'></a><a href='#L59'>59</a>
125
- <a name='L60'></a><a href='#L60'>60</a>
126
- <a name='L61'></a><a href='#L61'>61</a>
127
- <a name='L62'></a><a href='#L62'>62</a>
128
- <a name='L63'></a><a href='#L63'>63</a>
129
- <a name='L64'></a><a href='#L64'>64</a>
130
- <a name='L65'></a><a href='#L65'>65</a>
131
- <a name='L66'></a><a href='#L66'>66</a>
132
- <a name='L67'></a><a href='#L67'>67</a>
133
- <a name='L68'></a><a href='#L68'>68</a>
134
- <a name='L69'></a><a href='#L69'>69</a>
135
- <a name='L70'></a><a href='#L70'>70</a>
136
- <a name='L71'></a><a href='#L71'>71</a>
137
- <a name='L72'></a><a href='#L72'>72</a>
138
- <a name='L73'></a><a href='#L73'>73</a>
139
- <a name='L74'></a><a href='#L74'>74</a>
140
- <a name='L75'></a><a href='#L75'>75</a>
141
- <a name='L76'></a><a href='#L76'>76</a>
142
- <a name='L77'></a><a href='#L77'>77</a>
143
- <a name='L78'></a><a href='#L78'>78</a>
144
- <a name='L79'></a><a href='#L79'>79</a>
145
- <a name='L80'></a><a href='#L80'>80</a>
146
- <a name='L81'></a><a href='#L81'>81</a>
147
- <a name='L82'></a><a href='#L82'>82</a>
148
- <a name='L83'></a><a href='#L83'>83</a>
149
- <a name='L84'></a><a href='#L84'>84</a>
150
- <a name='L85'></a><a href='#L85'>85</a>
151
- <a name='L86'></a><a href='#L86'>86</a>
152
- <a name='L87'></a><a href='#L87'>87</a>
153
- <a name='L88'></a><a href='#L88'>88</a>
154
- <a name='L89'></a><a href='#L89'>89</a>
155
- <a name='L90'></a><a href='#L90'>90</a>
156
- <a name='L91'></a><a href='#L91'>91</a>
157
- <a name='L92'></a><a href='#L92'>92</a>
158
- <a name='L93'></a><a href='#L93'>93</a>
159
- <a name='L94'></a><a href='#L94'>94</a>
160
- <a name='L95'></a><a href='#L95'>95</a>
161
- <a name='L96'></a><a href='#L96'>96</a>
162
- <a name='L97'></a><a href='#L97'>97</a>
163
- <a name='L98'></a><a href='#L98'>98</a>
164
- <a name='L99'></a><a href='#L99'>99</a>
165
- <a name='L100'></a><a href='#L100'>100</a>
166
- <a name='L101'></a><a href='#L101'>101</a>
167
- <a name='L102'></a><a href='#L102'>102</a>
168
- <a name='L103'></a><a href='#L103'>103</a>
169
- <a name='L104'></a><a href='#L104'>104</a>
170
- <a name='L105'></a><a href='#L105'>105</a>
171
- <a name='L106'></a><a href='#L106'>106</a>
172
- <a name='L107'></a><a href='#L107'>107</a>
173
- <a name='L108'></a><a href='#L108'>108</a>
174
- <a name='L109'></a><a href='#L109'>109</a>
175
- <a name='L110'></a><a href='#L110'>110</a>
176
- <a name='L111'></a><a href='#L111'>111</a>
177
- <a name='L112'></a><a href='#L112'>112</a>
178
- <a name='L113'></a><a href='#L113'>113</a>
179
- <a name='L114'></a><a href='#L114'>114</a>
180
- <a name='L115'></a><a href='#L115'>115</a>
181
- <a name='L116'></a><a href='#L116'>116</a>
182
- <a name='L117'></a><a href='#L117'>117</a>
183
- <a name='L118'></a><a href='#L118'>118</a>
184
- <a name='L119'></a><a href='#L119'>119</a>
185
- <a name='L120'></a><a href='#L120'>120</a>
186
- <a name='L121'></a><a href='#L121'>121</a>
187
- <a name='L122'></a><a href='#L122'>122</a>
188
- <a name='L123'></a><a href='#L123'>123</a>
189
- <a name='L124'></a><a href='#L124'>124</a>
190
- <a name='L125'></a><a href='#L125'>125</a>
191
- <a name='L126'></a><a href='#L126'>126</a>
192
- <a name='L127'></a><a href='#L127'>127</a>
193
- <a name='L128'></a><a href='#L128'>128</a>
194
- <a name='L129'></a><a href='#L129'>129</a>
195
- <a name='L130'></a><a href='#L130'>130</a>
196
- <a name='L131'></a><a href='#L131'>131</a>
197
- <a name='L132'></a><a href='#L132'>132</a>
198
- <a name='L133'></a><a href='#L133'>133</a>
199
- <a name='L134'></a><a href='#L134'>134</a>
200
- <a name='L135'></a><a href='#L135'>135</a>
201
- <a name='L136'></a><a href='#L136'>136</a>
202
- <a name='L137'></a><a href='#L137'>137</a>
203
- <a name='L138'></a><a href='#L138'>138</a>
204
- <a name='L139'></a><a href='#L139'>139</a>
205
- <a name='L140'></a><a href='#L140'>140</a>
206
- <a name='L141'></a><a href='#L141'>141</a>
207
- <a name='L142'></a><a href='#L142'>142</a>
208
- <a name='L143'></a><a href='#L143'>143</a>
209
- <a name='L144'></a><a href='#L144'>144</a>
210
- <a name='L145'></a><a href='#L145'>145</a>
211
- <a name='L146'></a><a href='#L146'>146</a>
212
- <a name='L147'></a><a href='#L147'>147</a>
213
- <a name='L148'></a><a href='#L148'>148</a>
214
- <a name='L149'></a><a href='#L149'>149</a>
215
- <a name='L150'></a><a href='#L150'>150</a>
216
- <a name='L151'></a><a href='#L151'>151</a>
217
- <a name='L152'></a><a href='#L152'>152</a>
218
- <a name='L153'></a><a href='#L153'>153</a>
219
- <a name='L154'></a><a href='#L154'>154</a>
220
- <a name='L155'></a><a href='#L155'>155</a>
221
- <a name='L156'></a><a href='#L156'>156</a>
222
- <a name='L157'></a><a href='#L157'>157</a>
223
- <a name='L158'></a><a href='#L158'>158</a>
224
- <a name='L159'></a><a href='#L159'>159</a>
225
- <a name='L160'></a><a href='#L160'>160</a>
226
- <a name='L161'></a><a href='#L161'>161</a>
227
- <a name='L162'></a><a href='#L162'>162</a>
228
- <a name='L163'></a><a href='#L163'>163</a>
229
- <a name='L164'></a><a href='#L164'>164</a>
230
- <a name='L165'></a><a href='#L165'>165</a>
231
- <a name='L166'></a><a href='#L166'>166</a>
232
- <a name='L167'></a><a href='#L167'>167</a>
233
- <a name='L168'></a><a href='#L168'>168</a>
234
- <a name='L169'></a><a href='#L169'>169</a>
235
- <a name='L170'></a><a href='#L170'>170</a>
236
- <a name='L171'></a><a href='#L171'>171</a>
237
- <a name='L172'></a><a href='#L172'>172</a>
238
- <a name='L173'></a><a href='#L173'>173</a>
239
- <a name='L174'></a><a href='#L174'>174</a>
240
- <a name='L175'></a><a href='#L175'>175</a>
241
- <a name='L176'></a><a href='#L176'>176</a>
242
- <a name='L177'></a><a href='#L177'>177</a>
243
- <a name='L178'></a><a href='#L178'>178</a>
244
- <a name='L179'></a><a href='#L179'>179</a>
245
- <a name='L180'></a><a href='#L180'>180</a>
246
- <a name='L181'></a><a href='#L181'>181</a>
247
- <a name='L182'></a><a href='#L182'>182</a>
248
- <a name='L183'></a><a href='#L183'>183</a>
249
- <a name='L184'></a><a href='#L184'>184</a>
250
- <a name='L185'></a><a href='#L185'>185</a>
251
- <a name='L186'></a><a href='#L186'>186</a>
252
- <a name='L187'></a><a href='#L187'>187</a>
253
- <a name='L188'></a><a href='#L188'>188</a>
254
- <a name='L189'></a><a href='#L189'>189</a>
255
- <a name='L190'></a><a href='#L190'>190</a>
256
- <a name='L191'></a><a href='#L191'>191</a>
257
- <a name='L192'></a><a href='#L192'>192</a>
258
- <a name='L193'></a><a href='#L193'>193</a>
259
- <a name='L194'></a><a href='#L194'>194</a>
260
- <a name='L195'></a><a href='#L195'>195</a>
261
- <a name='L196'></a><a href='#L196'>196</a>
262
- <a name='L197'></a><a href='#L197'>197</a>
263
- <a name='L198'></a><a href='#L198'>198</a>
264
- <a name='L199'></a><a href='#L199'>199</a>
265
- <a name='L200'></a><a href='#L200'>200</a>
266
- <a name='L201'></a><a href='#L201'>201</a>
267
- <a name='L202'></a><a href='#L202'>202</a>
268
- <a name='L203'></a><a href='#L203'>203</a>
269
- <a name='L204'></a><a href='#L204'>204</a>
270
- <a name='L205'></a><a href='#L205'>205</a>
271
- <a name='L206'></a><a href='#L206'>206</a>
272
- <a name='L207'></a><a href='#L207'>207</a>
273
- <a name='L208'></a><a href='#L208'>208</a>
274
- <a name='L209'></a><a href='#L209'>209</a>
275
- <a name='L210'></a><a href='#L210'>210</a>
276
- <a name='L211'></a><a href='#L211'>211</a>
277
- <a name='L212'></a><a href='#L212'>212</a>
278
- <a name='L213'></a><a href='#L213'>213</a>
279
- <a name='L214'></a><a href='#L214'>214</a>
280
- <a name='L215'></a><a href='#L215'>215</a>
281
- <a name='L216'></a><a href='#L216'>216</a>
282
- <a name='L217'></a><a href='#L217'>217</a>
283
- <a name='L218'></a><a href='#L218'>218</a>
284
- <a name='L219'></a><a href='#L219'>219</a>
285
- <a name='L220'></a><a href='#L220'>220</a>
286
- <a name='L221'></a><a href='#L221'>221</a>
287
- <a name='L222'></a><a href='#L222'>222</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
288
- <span class="cline-any cline-neutral">&nbsp;</span>
289
- <span class="cline-any cline-neutral">&nbsp;</span>
290
- <span class="cline-any cline-neutral">&nbsp;</span>
291
- <span class="cline-any cline-neutral">&nbsp;</span>
292
- <span class="cline-any cline-neutral">&nbsp;</span>
293
- <span class="cline-any cline-neutral">&nbsp;</span>
294
- <span class="cline-any cline-neutral">&nbsp;</span>
295
- <span class="cline-any cline-neutral">&nbsp;</span>
296
- <span class="cline-any cline-neutral">&nbsp;</span>
297
- <span class="cline-any cline-neutral">&nbsp;</span>
298
- <span class="cline-any cline-neutral">&nbsp;</span>
299
- <span class="cline-any cline-neutral">&nbsp;</span>
300
- <span class="cline-any cline-neutral">&nbsp;</span>
301
- <span class="cline-any cline-neutral">&nbsp;</span>
302
- <span class="cline-any cline-neutral">&nbsp;</span>
303
- <span class="cline-any cline-neutral">&nbsp;</span>
304
- <span class="cline-any cline-neutral">&nbsp;</span>
305
- <span class="cline-any cline-neutral">&nbsp;</span>
306
- <span class="cline-any cline-neutral">&nbsp;</span>
307
- <span class="cline-any cline-neutral">&nbsp;</span>
308
- <span class="cline-any cline-neutral">&nbsp;</span>
309
- <span class="cline-any cline-neutral">&nbsp;</span>
310
- <span class="cline-any cline-neutral">&nbsp;</span>
311
- <span class="cline-any cline-neutral">&nbsp;</span>
312
- <span class="cline-any cline-neutral">&nbsp;</span>
313
- <span class="cline-any cline-yes">40x</span>
314
- <span class="cline-any cline-yes">40x</span>
315
- <span class="cline-any cline-yes">40x</span>
316
- <span class="cline-any cline-yes">40x</span>
317
- <span class="cline-any cline-neutral">&nbsp;</span>
318
- <span class="cline-any cline-neutral">&nbsp;</span>
319
- <span class="cline-any cline-yes">40x</span>
320
- <span class="cline-any cline-neutral">&nbsp;</span>
321
- <span class="cline-any cline-neutral">&nbsp;</span>
322
- <span class="cline-any cline-neutral">&nbsp;</span>
323
- <span class="cline-any cline-neutral">&nbsp;</span>
324
- <span class="cline-any cline-neutral">&nbsp;</span>
325
- <span class="cline-any cline-neutral">&nbsp;</span>
326
- <span class="cline-any cline-neutral">&nbsp;</span>
327
- <span class="cline-any cline-neutral">&nbsp;</span>
328
- <span class="cline-any cline-neutral">&nbsp;</span>
329
- <span class="cline-any cline-neutral">&nbsp;</span>
330
- <span class="cline-any cline-neutral">&nbsp;</span>
331
- <span class="cline-any cline-neutral">&nbsp;</span>
332
- <span class="cline-any cline-neutral">&nbsp;</span>
333
- <span class="cline-any cline-neutral">&nbsp;</span>
334
- <span class="cline-any cline-neutral">&nbsp;</span>
335
- <span class="cline-any cline-neutral">&nbsp;</span>
336
- <span class="cline-any cline-neutral">&nbsp;</span>
337
- <span class="cline-any cline-neutral">&nbsp;</span>
338
- <span class="cline-any cline-neutral">&nbsp;</span>
339
- <span class="cline-any cline-neutral">&nbsp;</span>
340
- <span class="cline-any cline-neutral">&nbsp;</span>
341
- <span class="cline-any cline-neutral">&nbsp;</span>
342
- <span class="cline-any cline-neutral">&nbsp;</span>
343
- <span class="cline-any cline-neutral">&nbsp;</span>
344
- <span class="cline-any cline-neutral">&nbsp;</span>
345
- <span class="cline-any cline-neutral">&nbsp;</span>
346
- <span class="cline-any cline-neutral">&nbsp;</span>
347
- <span class="cline-any cline-neutral">&nbsp;</span>
348
- <span class="cline-any cline-neutral">&nbsp;</span>
349
- <span class="cline-any cline-neutral">&nbsp;</span>
350
- <span class="cline-any cline-neutral">&nbsp;</span>
351
- <span class="cline-any cline-neutral">&nbsp;</span>
352
- <span class="cline-any cline-neutral">&nbsp;</span>
353
- <span class="cline-any cline-neutral">&nbsp;</span>
354
- <span class="cline-any cline-neutral">&nbsp;</span>
355
- <span class="cline-any cline-neutral">&nbsp;</span>
356
- <span class="cline-any cline-neutral">&nbsp;</span>
357
- <span class="cline-any cline-neutral">&nbsp;</span>
358
- <span class="cline-any cline-neutral">&nbsp;</span>
359
- <span class="cline-any cline-neutral">&nbsp;</span>
360
- <span class="cline-any cline-neutral">&nbsp;</span>
361
- <span class="cline-any cline-neutral">&nbsp;</span>
362
- <span class="cline-any cline-neutral">&nbsp;</span>
363
- <span class="cline-any cline-neutral">&nbsp;</span>
364
- <span class="cline-any cline-neutral">&nbsp;</span>
365
- <span class="cline-any cline-neutral">&nbsp;</span>
366
- <span class="cline-any cline-neutral">&nbsp;</span>
367
- <span class="cline-any cline-neutral">&nbsp;</span>
368
- <span class="cline-any cline-neutral">&nbsp;</span>
369
- <span class="cline-any cline-neutral">&nbsp;</span>
370
- <span class="cline-any cline-neutral">&nbsp;</span>
371
- <span class="cline-any cline-neutral">&nbsp;</span>
372
- <span class="cline-any cline-neutral">&nbsp;</span>
373
- <span class="cline-any cline-neutral">&nbsp;</span>
374
- <span class="cline-any cline-neutral">&nbsp;</span>
375
- <span class="cline-any cline-neutral">&nbsp;</span>
376
- <span class="cline-any cline-neutral">&nbsp;</span>
377
- <span class="cline-any cline-neutral">&nbsp;</span>
378
- <span class="cline-any cline-neutral">&nbsp;</span>
379
- <span class="cline-any cline-neutral">&nbsp;</span>
380
- <span class="cline-any cline-neutral">&nbsp;</span>
381
- <span class="cline-any cline-neutral">&nbsp;</span>
382
- <span class="cline-any cline-neutral">&nbsp;</span>
383
- <span class="cline-any cline-neutral">&nbsp;</span>
384
- <span class="cline-any cline-neutral">&nbsp;</span>
385
- <span class="cline-any cline-neutral">&nbsp;</span>
386
- <span class="cline-any cline-neutral">&nbsp;</span>
387
- <span class="cline-any cline-neutral">&nbsp;</span>
388
- <span class="cline-any cline-neutral">&nbsp;</span>
389
- <span class="cline-any cline-neutral">&nbsp;</span>
390
- <span class="cline-any cline-neutral">&nbsp;</span>
391
- <span class="cline-any cline-neutral">&nbsp;</span>
392
- <span class="cline-any cline-neutral">&nbsp;</span>
393
- <span class="cline-any cline-neutral">&nbsp;</span>
394
- <span class="cline-any cline-neutral">&nbsp;</span>
395
- <span class="cline-any cline-neutral">&nbsp;</span>
396
- <span class="cline-any cline-neutral">&nbsp;</span>
397
- <span class="cline-any cline-neutral">&nbsp;</span>
398
- <span class="cline-any cline-neutral">&nbsp;</span>
399
- <span class="cline-any cline-neutral">&nbsp;</span>
400
- <span class="cline-any cline-neutral">&nbsp;</span>
401
- <span class="cline-any cline-neutral">&nbsp;</span>
402
- <span class="cline-any cline-neutral">&nbsp;</span>
403
- <span class="cline-any cline-neutral">&nbsp;</span>
404
- <span class="cline-any cline-neutral">&nbsp;</span>
405
- <span class="cline-any cline-neutral">&nbsp;</span>
406
- <span class="cline-any cline-neutral">&nbsp;</span>
407
- <span class="cline-any cline-neutral">&nbsp;</span>
408
- <span class="cline-any cline-neutral">&nbsp;</span>
409
- <span class="cline-any cline-neutral">&nbsp;</span>
410
- <span class="cline-any cline-neutral">&nbsp;</span>
411
- <span class="cline-any cline-neutral">&nbsp;</span>
412
- <span class="cline-any cline-neutral">&nbsp;</span>
413
- <span class="cline-any cline-neutral">&nbsp;</span>
414
- <span class="cline-any cline-neutral">&nbsp;</span>
415
- <span class="cline-any cline-neutral">&nbsp;</span>
416
- <span class="cline-any cline-neutral">&nbsp;</span>
417
- <span class="cline-any cline-neutral">&nbsp;</span>
418
- <span class="cline-any cline-neutral">&nbsp;</span>
419
- <span class="cline-any cline-neutral">&nbsp;</span>
420
- <span class="cline-any cline-neutral">&nbsp;</span>
421
- <span class="cline-any cline-neutral">&nbsp;</span>
422
- <span class="cline-any cline-neutral">&nbsp;</span>
423
- <span class="cline-any cline-neutral">&nbsp;</span>
424
- <span class="cline-any cline-neutral">&nbsp;</span>
425
- <span class="cline-any cline-neutral">&nbsp;</span>
426
- <span class="cline-any cline-neutral">&nbsp;</span>
427
- <span class="cline-any cline-neutral">&nbsp;</span>
428
- <span class="cline-any cline-no">&nbsp;</span>
429
- <span class="cline-any cline-neutral">&nbsp;</span>
430
- <span class="cline-any cline-neutral">&nbsp;</span>
431
- <span class="cline-any cline-neutral">&nbsp;</span>
432
- <span class="cline-any cline-neutral">&nbsp;</span>
433
- <span class="cline-any cline-neutral">&nbsp;</span>
434
- <span class="cline-any cline-neutral">&nbsp;</span>
435
- <span class="cline-any cline-neutral">&nbsp;</span>
436
- <span class="cline-any cline-neutral">&nbsp;</span>
437
- <span class="cline-any cline-neutral">&nbsp;</span>
438
- <span class="cline-any cline-neutral">&nbsp;</span>
439
- <span class="cline-any cline-neutral">&nbsp;</span>
440
- <span class="cline-any cline-neutral">&nbsp;</span>
441
- <span class="cline-any cline-neutral">&nbsp;</span>
442
- <span class="cline-any cline-neutral">&nbsp;</span>
443
- <span class="cline-any cline-neutral">&nbsp;</span>
444
- <span class="cline-any cline-neutral">&nbsp;</span>
445
- <span class="cline-any cline-neutral">&nbsp;</span>
446
- <span class="cline-any cline-neutral">&nbsp;</span>
447
- <span class="cline-any cline-neutral">&nbsp;</span>
448
- <span class="cline-any cline-neutral">&nbsp;</span>
449
- <span class="cline-any cline-no">&nbsp;</span>
450
- <span class="cline-any cline-neutral">&nbsp;</span>
451
- <span class="cline-any cline-neutral">&nbsp;</span>
452
- <span class="cline-any cline-neutral">&nbsp;</span>
453
- <span class="cline-any cline-neutral">&nbsp;</span>
454
- <span class="cline-any cline-neutral">&nbsp;</span>
455
- <span class="cline-any cline-neutral">&nbsp;</span>
456
- <span class="cline-any cline-neutral">&nbsp;</span>
457
- <span class="cline-any cline-neutral">&nbsp;</span>
458
- <span class="cline-any cline-neutral">&nbsp;</span>
459
- <span class="cline-any cline-neutral">&nbsp;</span>
460
- <span class="cline-any cline-neutral">&nbsp;</span>
461
- <span class="cline-any cline-neutral">&nbsp;</span>
462
- <span class="cline-any cline-neutral">&nbsp;</span>
463
- <span class="cline-any cline-neutral">&nbsp;</span>
464
- <span class="cline-any cline-no">&nbsp;</span>
465
- <span class="cline-any cline-no">&nbsp;</span>
466
- <span class="cline-any cline-neutral">&nbsp;</span>
467
- <span class="cline-any cline-neutral">&nbsp;</span>
468
- <span class="cline-any cline-no">&nbsp;</span>
469
- <span class="cline-any cline-neutral">&nbsp;</span>
470
- <span class="cline-any cline-no">&nbsp;</span>
471
- <span class="cline-any cline-neutral">&nbsp;</span>
472
- <span class="cline-any cline-no">&nbsp;</span>
473
- <span class="cline-any cline-no">&nbsp;</span>
474
- <span class="cline-any cline-no">&nbsp;</span>
475
- <span class="cline-any cline-no">&nbsp;</span>
476
- <span class="cline-any cline-neutral">&nbsp;</span>
477
- <span class="cline-any cline-neutral">&nbsp;</span>
478
- <span class="cline-any cline-no">&nbsp;</span>
479
- <span class="cline-any cline-neutral">&nbsp;</span>
480
- <span class="cline-any cline-neutral">&nbsp;</span>
481
- <span class="cline-any cline-neutral">&nbsp;</span>
482
- <span class="cline-any cline-neutral">&nbsp;</span>
483
- <span class="cline-any cline-neutral">&nbsp;</span>
484
- <span class="cline-any cline-neutral">&nbsp;</span>
485
- <span class="cline-any cline-neutral">&nbsp;</span>
486
- <span class="cline-any cline-neutral">&nbsp;</span>
487
- <span class="cline-any cline-neutral">&nbsp;</span>
488
- <span class="cline-any cline-neutral">&nbsp;</span>
489
- <span class="cline-any cline-neutral">&nbsp;</span>
490
- <span class="cline-any cline-neutral">&nbsp;</span>
491
- <span class="cline-any cline-neutral">&nbsp;</span>
492
- <span class="cline-any cline-neutral">&nbsp;</span>
493
- <span class="cline-any cline-neutral">&nbsp;</span>
494
- <span class="cline-any cline-neutral">&nbsp;</span>
495
- <span class="cline-any cline-neutral">&nbsp;</span>
496
- <span class="cline-any cline-neutral">&nbsp;</span>
497
- <span class="cline-any cline-neutral">&nbsp;</span>
498
- <span class="cline-any cline-neutral">&nbsp;</span>
499
- <span class="cline-any cline-neutral">&nbsp;</span>
500
- <span class="cline-any cline-neutral">&nbsp;</span>
501
- <span class="cline-any cline-neutral">&nbsp;</span>
502
- <span class="cline-any cline-neutral">&nbsp;</span>
503
- <span class="cline-any cline-neutral">&nbsp;</span>
504
- <span class="cline-any cline-neutral">&nbsp;</span>
505
- <span class="cline-any cline-neutral">&nbsp;</span>
506
- <span class="cline-any cline-neutral">&nbsp;</span>
507
- <span class="cline-any cline-neutral">&nbsp;</span>
508
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import type { Field } from '~/pkgs/data-model';
509
- import type { C15TOptions } from '~/types';
510
- import { consentSchema } from './schema';
511
- /**
512
- * Generates the database table configuration for the consent entity.
513
- *
514
- * This function creates a schema definition that includes all standard consent fields
515
- * and any additional fields from plugins or configuration. The resulting schema is used
516
- * for database migrations, schema validation, and query building.
517
- *
518
- * @param options - C15T configuration options that may contain consent table customizations
519
- * @param consentFields - Additional fields from plugins to include in the consent table
520
- * @returns A complete table schema definition with fields, model name, and metadata
521
- *
522
- * @example
523
- * ```typescript
524
- * const consentTableSchema = getConsentTable(c15tOptions);
525
- * // Use the schema for migrations or data access
526
- * const migrationPlans = generateMigrations(consentTableSchema);
527
- * ```
528
- */
529
- export function getConsentTable(
530
- options: C15TOptions,
531
- consentFields?: Record&lt;string, Field&gt;
532
- ) {
533
- // Get consent config from the tables structure
534
- const consentConfig = options.tables?.consent;
535
- const subjectConfig = options.tables?.subject;
536
- const domainConfig = options.tables?.domain;
537
- const policyConfig = options.tables?.consentPolicy;
538
- // const purposeConfig = options.tables?.consentPurpose;
539
- &nbsp;
540
- return {
541
- /**
542
- * The name of the consent table in the database, configurable through options
543
- */
544
- entityName: consentConfig?.entityName || 'consent',
545
- &nbsp;
546
- /**
547
- * The ID prefix for the consent table
548
- * Used to generate unique prefixed IDs for consents
549
- */
550
- entityPrefix: consentConfig?.entityPrefix || 'cns',
551
- &nbsp;
552
- /**
553
- * The schema for the consent table
554
- */
555
- schema: consentSchema,
556
- &nbsp;
557
- /**
558
- * Field definitions for the consent table
559
- */
560
- fields: {
561
- /**
562
- * Reference to the subject who gave consent
563
- */
564
- subjectId: {
565
- type: 'string',
566
- required: true,
567
- fieldName: consentConfig?.fields?.subjectId || 'subjectId',
568
- references: {
569
- model: subjectConfig?.entityName || 'subject',
570
- field: 'id',
571
- },
572
- },
573
- &nbsp;
574
- /**
575
- * Reference to the domain this consent applies to
576
- */
577
- domainId: {
578
- type: 'string',
579
- required: true,
580
- fieldName: consentConfig?.fields?.domainId || 'domainId',
581
- references: {
582
- model: domainConfig?.entityName || 'domain',
583
- field: 'id',
584
- },
585
- },
586
- &nbsp;
587
- /**
588
- * Array of consentPurpose IDs that this consent applies to
589
- * Represents the many-to-many relationship between consent and purposes
590
- */
591
- purposeIds: {
592
- type: 'json',
593
- required: false,
594
- fieldName: consentConfig?.fields?.purposeIds || 'purposeIds',
595
- // TODO: add references to consentPurpose
596
- // references: {
597
- // model: purposeConfig?.entityName || 'consentPurpose',
598
- // field: 'id',
599
- // type: 'array', // Indicates this is an array of references
600
- // },
601
- },
602
- &nbsp;
603
- /**
604
- * Additional metadata about the consent
605
- */
606
- metadata: {
607
- type: 'json',
608
- required: false,
609
- fieldName: consentConfig?.fields?.metadata || 'metadata',
610
- },
611
- &nbsp;
612
- /**
613
- * Reference to the policy version that was accepted
614
- */
615
- policyId: {
616
- type: 'string',
617
- required: false,
618
- fieldName: consentConfig?.fields?.policyId || 'policyId',
619
- references: {
620
- model: policyConfig?.entityName || 'consentPolicy',
621
- field: 'id',
622
- },
623
- },
624
- &nbsp;
625
- /**
626
- * IP address when consent was given
627
- */
628
- ipAddress: {
629
- type: 'string',
630
- required: false,
631
- fieldName: consentConfig?.fields?.ipAddress || 'ipAddress',
632
- },
633
- &nbsp;
634
- /**
635
- * Subject agent information when consent was given
636
- */
637
- userAgent: {
638
- type: 'string',
639
- required: false,
640
- fieldName: consentConfig?.fields?.userAgent || 'userAgent',
641
- },
642
- &nbsp;
643
- /**
644
- * Status of the consent (active, expired, withdrawn)
645
- * Default: 'active'
646
- */
647
- status: {
648
- type: 'string',
649
- defaultValue: <span class="fstat-no" title="function not covered" >() =&gt; <span class="cstat-no" title="statement not covered" >'</span>active',</span>
650
- required: true,
651
- fieldName: consentConfig?.fields?.status || 'status',
652
- },
653
- &nbsp;
654
- /**
655
- * Reason for consentWithdrawal, if consent was withdrawn
656
- */
657
- withdrawalReason: {
658
- type: 'string',
659
- required: false,
660
- fieldName:
661
- consentConfig?.fields?.withdrawalReason || 'withdrawalReason',
662
- },
663
- &nbsp;
664
- /**
665
- * When the consent was given
666
- * Automatically set to current time
667
- */
668
- givenAt: {
669
- type: 'date',
670
- defaultValue: <span class="fstat-no" title="function not covered" >() =&gt; <span class="cstat-no" title="statement not covered" >n</span>ew Date(),</span>
671
- required: true,
672
- fieldName: consentConfig?.fields?.givenAt || 'givenAt',
673
- },
674
- &nbsp;
675
- /**
676
- * When the consent expires
677
- * Calculated based on givenAt + expiresIn setting
678
- */
679
- validUntil: {
680
- type: 'date',
681
- required: false,
682
- fieldName: consentConfig?.fields?.validUntil || 'validUntil',
683
- transform: {
684
- input: <span class="fstat-no" title="function not covered" >(v</span>al: Date | undefined, data: Record&lt;string, unknown&gt;) =&gt; {
685
- <span class="cstat-no" title="statement not covered" > if (val) {</span>
686
- <span class="cstat-no" title="statement not covered" > return val;</span>
687
- }
688
- &nbsp;
689
- const expiresIn = <span class="cstat-no" title="statement not covered" >consentConfig?.expiresIn || 31536000; // Default: 1 year</span>
690
- const givenAt =
691
- <span class="cstat-no" title="statement not covered" > data.givenAt instanceof Date ? data.givenAt : new Date();</span>
692
- &nbsp;
693
- <span class="cstat-no" title="statement not covered" > if (expiresIn &gt; 0) {</span>
694
- const validUntil = <span class="cstat-no" title="statement not covered" >new Date(givenAt);</span>
695
- <span class="cstat-no" title="statement not covered" > validUntil.setSeconds(validUntil.getSeconds() + expiresIn);</span>
696
- <span class="cstat-no" title="statement not covered" > return validUntil;</span>
697
- }
698
- &nbsp;
699
- <span class="cstat-no" title="statement not covered" > return undefined; // No expiration</span>
700
- },
701
- },
702
- },
703
- &nbsp;
704
- /**
705
- * Whether the consent is active
706
- * Default: true
707
- */
708
- isActive: {
709
- type: 'boolean',
710
- defaultValue: true,
711
- required: true,
712
- fieldName: consentConfig?.fields?.isActive || 'isActive',
713
- },
714
- &nbsp;
715
- // Include additional fields from plugins
716
- ...(consentFields || {}),
717
- &nbsp;
718
- // Include additional fields from configuration
719
- ...(consentConfig?.additionalFields || {}),
720
- },
721
- &nbsp;
722
- /**
723
- * Execution order during migrations (lower numbers run first)
724
- * Consent table needs to be created after the subject, domain, and policy tables it references
725
- */
726
- order: 3,
727
- };
728
- }
729
- &nbsp;</pre></td></tr></table></pre>
730
-
731
- <div class='push'></div><!-- for sticky footer -->
732
- </div><!-- /wrapper -->
733
- <div class='footer quiet pad2 space-top1 center small'>
734
- Code coverage generated by
735
- <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
736
- at 2025-04-14T10:55:46.797Z
737
- </div>
738
- <script src="../../../../prettify.js"></script>
739
- <script>
740
- window.onload = function () {
741
- prettyPrint();
742
- };
743
- </script>
744
- <script src="../../../../sorter.js"></script>
745
- <script src="../../../../block-navigation.js"></script>
746
- </body>
747
- </html>
748
-