@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,709 +0,0 @@
1
-
2
- <!doctype html>
3
- <html lang="en">
4
-
5
- <head>
6
- <title>Code coverage report for backend/src/pkgs/data-model/fields/field-factory.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/pkgs/data-model/fields</a> field-factory.ts</h1>
23
- <div class='clearfix'>
24
-
25
- <div class='fl pad1y space-right2'>
26
- <span class="strong">16.66% </span>
27
- <span class="quiet">Statements</span>
28
- <span class='fraction'>2/12</span>
29
- </div>
30
-
31
-
32
- <div class='fl pad1y space-right2'>
33
- <span class="strong">0% </span>
34
- <span class="quiet">Branches</span>
35
- <span class='fraction'>0/4</span>
36
- </div>
37
-
38
-
39
- <div class='fl pad1y space-right2'>
40
- <span class="strong">0% </span>
41
- <span class="quiet">Functions</span>
42
- <span class='fraction'>0/4</span>
43
- </div>
44
-
45
-
46
- <div class='fl pad1y space-right2'>
47
- <span class="strong">16.66% </span>
48
- <span class="quiet">Lines</span>
49
- <span class='fraction'>2/12</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></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
275
- <span class="cline-any cline-neutral">&nbsp;</span>
276
- <span class="cline-any cline-neutral">&nbsp;</span>
277
- <span class="cline-any cline-neutral">&nbsp;</span>
278
- <span class="cline-any cline-neutral">&nbsp;</span>
279
- <span class="cline-any cline-neutral">&nbsp;</span>
280
- <span class="cline-any cline-neutral">&nbsp;</span>
281
- <span class="cline-any cline-neutral">&nbsp;</span>
282
- <span class="cline-any cline-neutral">&nbsp;</span>
283
- <span class="cline-any cline-neutral">&nbsp;</span>
284
- <span class="cline-any cline-neutral">&nbsp;</span>
285
- <span class="cline-any cline-neutral">&nbsp;</span>
286
- <span class="cline-any cline-neutral">&nbsp;</span>
287
- <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-neutral">&nbsp;</span>
314
- <span class="cline-any cline-neutral">&nbsp;</span>
315
- <span class="cline-any cline-neutral">&nbsp;</span>
316
- <span class="cline-any cline-neutral">&nbsp;</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-neutral">&nbsp;</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-yes">6x</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-yes">6x</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-no">&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-no">&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-no">&nbsp;</span>
422
- <span class="cline-any cline-no">&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-neutral">&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-no">&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-neutral">&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-no">&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-neutral">&nbsp;</span>
465
- <span class="cline-any cline-neutral">&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-neutral">&nbsp;</span>
469
- <span class="cline-any cline-neutral">&nbsp;</span>
470
- <span class="cline-any cline-neutral">&nbsp;</span>
471
- <span class="cline-any cline-no">&nbsp;</span>
472
- <span class="cline-any cline-neutral">&nbsp;</span>
473
- <span class="cline-any cline-neutral">&nbsp;</span>
474
- <span class="cline-any cline-no">&nbsp;</span>
475
- <span class="cline-any cline-neutral">&nbsp;</span>
476
- <span class="cline-any cline-neutral">&nbsp;</span>
477
- <span class="cline-any cline-no">&nbsp;</span>
478
- <span class="cline-any cline-neutral">&nbsp;</span>
479
- <span class="cline-any cline-no">&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></td><td class="text"><pre class="prettyprint lang-js">/**
483
- * Configuration options specific to number fields.
484
- * Provides additional validation options for number fields.
485
- *
486
- * @example
487
- * ```typescript
488
- * // Define a number field with min/max constraints
489
- * const ageField = numberField({
490
- * required: true,
491
- * min: 0,
492
- * max: 120
493
- * });
494
- * ```
495
- */
496
- export type NumberFieldOptions = {
497
- /**
498
- * Minimum allowed value for the number field.
499
- */
500
- min?: number;
501
- /**
502
- * Maximum allowed value for the number field.
503
- */
504
- max?: number;
505
- };
506
- &nbsp;
507
- /**
508
- * Configuration options specific to string fields.
509
- * Provides additional validation options for string fields.
510
- *
511
- * @example
512
- * ```typescript
513
- * // Define a string field with length constraints
514
- * const usernameField = stringField({
515
- * required: true,
516
- * minLength: 3,
517
- * maxLength: 20
518
- * });
519
- * ```
520
- */
521
- export type StringFieldOptions = {
522
- /**
523
- * Minimum allowed length for the string field.
524
- */
525
- minLength?: number;
526
- /**
527
- * Maximum allowed length for the string field.
528
- */
529
- maxLength?: number;
530
- /**
531
- * Regular expression pattern that the string must match.
532
- */
533
- pattern?: string;
534
- };
535
- &nbsp;
536
- /**
537
- * Configuration options specific to date fields.
538
- * Provides additional validation and formatting options for date fields.
539
- *
540
- * @example
541
- * ```typescript
542
- * // Define a date field with min/max date constraints
543
- * const birthdateField = dateField({
544
- * required: true,
545
- * minDate: new Date('1900-01-01'),
546
- * maxDate: new Date() // Current date
547
- * });
548
- * ```
549
- */
550
- export type DateFieldOptions = {
551
- /**
552
- * Minimum allowed date value.
553
- * Dates earlier than this will fail validation.
554
- */
555
- minDate?: Date;
556
- &nbsp;
557
- /**
558
- * Maximum allowed date value.
559
- * Dates later than this will fail validation.
560
- */
561
- maxDate?: Date;
562
- &nbsp;
563
- /**
564
- * Whether to store just the date part without time information.
565
- * When true, time components will be zeroed out.
566
- * @default false
567
- */
568
- dateOnly?: boolean;
569
- &nbsp;
570
- /**
571
- * Format string for date output transformation.
572
- * If provided, dates will be transformed to strings in this format.
573
- * Only applies if no custom output transform is provided.
574
- * Uses Intl.DateTimeFormat for consistent cross-platform formatting.
575
- */
576
- format?: Intl.DateTimeFormatOptions;
577
- };
578
- &nbsp;
579
- /**
580
- * Common IANA timezone identifiers.
581
- * A subset of commonly used timezones from the IANA timezone database.
582
- * Used for validation and autocompletion in IDE.
583
- */
584
- export const COMMON_TIMEZONES = {
585
- UTC: 'UTC',
586
- GMT: 'GMT',
587
- // North America
588
- EASTERN: 'America/New_York',
589
- CENTRAL: 'America/Chicago',
590
- MOUNTAIN: 'America/Denver',
591
- PACIFIC: 'America/Los_Angeles',
592
- // Europe
593
- LONDON: 'Europe/London',
594
- PARIS: 'Europe/Paris',
595
- BERLIN: 'Europe/Berlin',
596
- // Asia
597
- TOKYO: 'Asia/Tokyo',
598
- SHANGHAI: 'Asia/Shanghai',
599
- SINGAPORE: 'Asia/Singapore',
600
- // Australia
601
- SYDNEY: 'Australia/Sydney',
602
- // South America
603
- SAO_PAULO: 'America/Sao_Paulo',
604
- } as const;
605
- &nbsp;
606
- /**
607
- * Utility functions for working with dates and timezones.
608
- * Provides helper methods for common date and timezone operations.
609
- */
610
- export const DateTimeUtils = {
611
- /**
612
- * Creates a Date object in a specific timezone.
613
- *
614
- * @param dateInput - Date object or ISO string to convert
615
- * @param timezone - Target timezone (IANA timezone identifier)
616
- * @returns Date object adjusted for the specified timezone
617
- */
618
- createDateInTimezone: <span class="fstat-no" title="function not covered" >(d</span>ateInput: Date | string, timezone: string): Date =&gt; {
619
- const date =
620
- <span class="cstat-no" title="statement not covered" > typeof dateInput === 'string' ? new Date(dateInput) : new Date(dateInput);</span>
621
- &nbsp;
622
- // Get the target timezone's current offset from UTC
623
- const formatter = <span class="cstat-no" title="statement not covered" >new Intl.DateTimeFormat('en-US', {</span>
624
- timeZone: timezone,
625
- timeZoneName: 'short',
626
- });
627
- &nbsp;
628
- // Format the date in the target timezone to get correct representation
629
- const formattedDate = <span class="cstat-no" title="statement not covered" >formatter.format(date);</span>
630
- <span class="cstat-no" title="statement not covered" > return new Date(formattedDate);</span>
631
- },
632
- &nbsp;
633
- /**
634
- * Formats a date according to the specified timezone.
635
- *
636
- * @param date - The date to format
637
- * @param timezone - Target timezone (IANA timezone identifier)
638
- * @param options - Formatting options for Intl.DateTimeFormat
639
- * @returns Formatted date string in the specified timezone
640
- */
641
- formatInTimezone: <span class="fstat-no" title="function not covered" >(</span>
642
- date: Date,
643
- timezone: string,
644
- options: Intl.DateTimeFormatOptions = <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
645
- year: 'numeric',
646
- month: 'numeric',
647
- day: 'numeric',
648
- hour: 'numeric',
649
- minute: 'numeric',
650
- second: 'numeric',
651
- timeZoneName: 'short',
652
- }
653
- ): string =&gt; {
654
- <span class="cstat-no" title="statement not covered" > return new Intl.DateTimeFormat('en-US', {</span>
655
- ...options,
656
- timeZone: timezone,
657
- }).format(date);
658
- },
659
- &nbsp;
660
- /**
661
- * Gets the current date in a specific timezone.
662
- *
663
- * @param timezone - Target timezone (IANA timezone identifier)
664
- * @returns Current date adjusted for the specified timezone
665
- */
666
- getNowInTimezone: <span class="fstat-no" title="function not covered" >(t</span>imezone: string): Date =&gt; {
667
- <span class="cstat-no" title="statement not covered" > return DateTimeUtils.createDateInTimezone(new Date(), timezone);</span>
668
- },
669
- &nbsp;
670
- /**
671
- * Calculates the offset in minutes between the local timezone and the specified timezone.
672
- *
673
- * @param timezone - Target timezone (IANA timezone identifier)
674
- * @param date - Optional date to calculate the offset for (defaults to current date)
675
- * @returns Offset in minutes between local and specified timezone
676
- */
677
- getTimezoneOffset: <span class="fstat-no" title="function not covered" >(t</span>imezone: string, date: Date = <span class="branch-0 cbranch-no" title="branch not covered" >new Date()): number =&gt; {</span>
678
- // Calculate the client's timezone offset in minutes
679
- const localOffset = <span class="cstat-no" title="statement not covered" >date.getTimezoneOffset();</span>
680
- &nbsp;
681
- // Get the target timezone offset
682
- const targetDate = <span class="cstat-no" title="statement not covered" >new Date(</span>
683
- date.toLocaleString('en-US', { timeZone: timezone })
684
- );
685
- const <span class="cstat-no" title="statement not covered" >targetOffset = (date.getTime() - targetDate.getTime()) / 60000;</span>
686
- &nbsp;
687
- <span class="cstat-no" title="statement not covered" > return localOffset - targetOffset;</span>
688
- },
689
- };
690
- &nbsp;</pre></td></tr></table></pre>
691
-
692
- <div class='push'></div><!-- for sticky footer -->
693
- </div><!-- /wrapper -->
694
- <div class='footer quiet pad2 space-top1 center small'>
695
- Code coverage generated by
696
- <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
697
- at 2025-04-14T10:55:46.797Z
698
- </div>
699
- <script src="../../../../../prettify.js"></script>
700
- <script>
701
- window.onload = function () {
702
- prettyPrint();
703
- };
704
- </script>
705
- <script src="../../../../../sorter.js"></script>
706
- <script src="../../../../../block-navigation.js"></script>
707
- </body>
708
- </html>
709
-